|
|
@@ -12,6 +12,7 @@ import com.goafanti.core.mybatis.page.Pagination;
|
|
|
import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.order.bo.TOrderNewBo;
|
|
|
import com.goafanti.order.enums.ApprovalNewState;
|
|
|
+import com.goafanti.order.enums.OrderChangeProcess;
|
|
|
import com.goafanti.order.enums.ProcessStatus;
|
|
|
import com.goafanti.organization.bo.DepOut;
|
|
|
import com.goafanti.organization.bo.InputDep;
|
|
|
@@ -40,6 +41,10 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
|
|
|
private TOrderExamineMapper torderExamineMapper;
|
|
|
@Autowired
|
|
|
private TOrderLogMapper tOrderLogMapper;
|
|
|
+ @Autowired
|
|
|
+ private AdminMapper adminMapper;
|
|
|
+ @Autowired
|
|
|
+ private NewOrderChangeMapper newOrderChangeMapper;
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
@@ -235,33 +240,42 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
|
|
|
dep.setApprovalAid(in.getApprovalAid());
|
|
|
dep.setTechAdminId(in.getTechAdminId());
|
|
|
dep.setOperationGuaranteeId(in.getOperationGuaranteeId());
|
|
|
+ List<String> orderS = new ArrayList();
|
|
|
+ //如果本来部分没有,新增财务
|
|
|
+ if(StringUtils.isBlank(useDep.getFinanceId())&&StringUtils.isNotBlank(in.getFinanceId())){
|
|
|
+ addExamine(useDep,in.getFinanceId(),orderS);
|
|
|
+ }
|
|
|
+ if(StringUtils.isBlank(useDep.getRetrialFinanceId())&&StringUtils.isNotBlank(in.getRetrialFinanceId())){
|
|
|
+ addExamine(useDep,in.getExpenseFinanceId(),orderS);
|
|
|
+ }
|
|
|
+ if(StringUtils.isBlank(useDep.getTechAdminId())&&StringUtils.isNotBlank(in.getTechAdminId())){
|
|
|
+ addExamine(useDep,in.getTechAdminId(),orderS);
|
|
|
+ }
|
|
|
+ if(!orderS.isEmpty()){
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(orderS,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isBlank(useDep.getOperationGuaranteeId())&&StringUtils.isNotBlank(in.getOperationGuaranteeId())){
|
|
|
+ List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YYBZSH.getCode());
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(strings, ProcessStatus.YYBZSH.getCode());
|
|
|
+ }
|
|
|
//财务与复审切换的时候要切换所有未审核的财务
|
|
|
boolean updateFinance=false;
|
|
|
boolean updateRetrialFinance=false;
|
|
|
//获取需要重新刷新的财务
|
|
|
List<String> aids =new ArrayList<>();
|
|
|
if(!in.getFinanceId().equals(useDep.getFinanceId())){
|
|
|
- if(StringUtils.isBlank(in.getFinanceId())){
|
|
|
- //先将旧的查出来
|
|
|
- List<String> list = torderNewMapper.selectByFinanceNotExamine(useDep.getFinanceId());
|
|
|
- //再删除旧单需要审核的
|
|
|
- torderExamineMapper.deleteExamineFinance(useDep.getFinanceId());
|
|
|
- if (!list.isEmpty()){
|
|
|
- torderNewMapper.updateOrderDepFinanceExamineName(list);
|
|
|
- }
|
|
|
- }else {
|
|
|
dep.setFinanceId(in.getFinanceId());
|
|
|
//审核人切换
|
|
|
- departmentMapper.updateOrderDepFinanceNotExamine(in.getFinanceId(),useDep.getFinanceId());
|
|
|
+ departmentMapper.updateOrderDepFinanceNotExamine(in.getFinanceId(),useDep.getFinanceId(),useDep.getId());
|
|
|
//查询切换后的订单刷新审核人
|
|
|
List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getFinanceId());
|
|
|
if (!list.isEmpty()){
|
|
|
- torderNewMapper.updateOrderDepFinanceExamineName(list);
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
updateFinance=true;
|
|
|
}
|
|
|
+ //如果技术总监、运营保障审核、财务复审为空则修改为null
|
|
|
if (StringUtils.isBlank(in.getTechAdminId())||StringUtils.isBlank(in.getOperationGuaranteeId())
|
|
|
||StringUtils.isBlank(in.getRetrialFinanceId())){
|
|
|
if(StringUtils.isBlank(in.getTechAdminId()))in.setTechAdminId(null);
|
|
|
@@ -269,111 +283,49 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
|
|
|
if(StringUtils.isBlank(in.getRetrialFinanceId()))in.setRetrialFinanceId(null);
|
|
|
departmentMapper.updateNull(in);
|
|
|
}
|
|
|
- //处理去掉咨询师管理员
|
|
|
+ //处理去掉技术总监
|
|
|
if (in.getTechAdminId()==null||!in.getTechAdminId().equals(useDep.getTechAdminId())){
|
|
|
if(StringUtils.isBlank(in.getTechAdminId())){
|
|
|
//先将旧的查出来
|
|
|
List<String> list = torderNewMapper.selectByFinanceNotExamine(useDep.getTechAdminId());
|
|
|
//再删除旧单需要审核的
|
|
|
- torderExamineMapper.deleteExamineFinance(useDep.getTechAdminId());
|
|
|
+ torderExamineMapper.deleteExamineFinance(useDep.getId(),useDep.getTechAdminId());
|
|
|
if (!list.isEmpty()){
|
|
|
//先把药推送到下个流程的查出来
|
|
|
for (String s : list) {
|
|
|
- List<TOrderExamine> tOrderExamines = torderExamineMapper.selectByOrderNo(s, 0);
|
|
|
- int i = 0;
|
|
|
- for (TOrderExamine e : tOrderExamines) {
|
|
|
- if (e.getStatus() == 1) i++;
|
|
|
- }
|
|
|
- if (i == tOrderExamines.size()) {
|
|
|
- //推送订单流程
|
|
|
- addOrderLog(s,OrderLogProcess.XMZJSH.getCode(),"部门修改技术总监,判定审核通过");
|
|
|
- StringBuilder str = new StringBuilder();
|
|
|
- TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
|
|
|
- TOrderNewBo order = torderNewMapper.getSaleIdByOno(s);
|
|
|
- TOrderNew newOrder = new TOrderNew();
|
|
|
- newOrder.setOrderNo(s);
|
|
|
- //如果订单是特批
|
|
|
- if (tOrderNew.getApproval() == ApprovalNewState.TPDSH.getCode() || tOrderNew.getApproval() == ApprovalNewState.TPBH.getCode()) {
|
|
|
- if (StringUtils.isNotEmpty(in.getOperationGuaranteeId())) {
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YYBZSH.getCode());
|
|
|
- str.append(order.getOperationGuaranteeName()).append(",");
|
|
|
- aids.add(order.getOperationGuaranteeId());
|
|
|
- } else if (order.getApprovalStatus() == 0) {
|
|
|
- addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
- addOrderLog(s,OrderLogProcess.TP.getCode(),"部门特批审核未设置,系统自动通过");
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
|
|
|
- newOrder.setApproval(ApprovalNewState.TPTG.getCode());
|
|
|
- } else {
|
|
|
- addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YPTPSH.getCode());
|
|
|
- aids.add(order.getApprovalAid());
|
|
|
- str.append(order.getApprovalName()).append(",");
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- newOrder.setExamineName(str.substring(0,str.length()-1));
|
|
|
- torderNewMapper.updateByPrimaryKeySelective(newOrder);
|
|
|
- }
|
|
|
- torderNewMapper.updateOrderDepFinanceExamineName(list);
|
|
|
+ pushCW_JSZJ_Examine(in, s, aids, 0);
|
|
|
}
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
}
|
|
|
}else{
|
|
|
+ //审核人切换
|
|
|
+ departmentMapper.updateOrderDepFinanceNotExamine(in.getTechAdminId(),useDep.getTechAdminId(),useDep.getId());
|
|
|
+ //查询切换后的订单刷新审核人
|
|
|
+ List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getTechAdminId());
|
|
|
+ if (!list.isEmpty()){
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
if (!in.getRetrialFinanceId().equals(useDep.getRetrialFinanceId())){
|
|
|
if(StringUtils.isBlank(in.getRetrialFinanceId())) {
|
|
|
//先将旧的查出来
|
|
|
List<String> list = torderNewMapper.selectByFinanceNotExamine(useDep.getRetrialFinanceId());
|
|
|
//再删除旧单需要审核的
|
|
|
- torderExamineMapper.deleteExamineFinance(useDep.getRetrialFinanceId());
|
|
|
+ torderExamineMapper.deleteExamineFinance(useDep.getId(),useDep.getRetrialFinanceId());
|
|
|
if (!list.isEmpty()) {
|
|
|
//先把药推送到下个流程的查出来
|
|
|
for (String s : list) {
|
|
|
- List<TOrderExamine> tOrderExamines = torderExamineMapper.selectByOrderNo(s, 0);
|
|
|
- int i = 0;
|
|
|
- for (TOrderExamine e : tOrderExamines) {
|
|
|
- if (e.getStatus() == 1) i++;
|
|
|
- }
|
|
|
- if (i == tOrderExamines.size()) {
|
|
|
- //推送订单流程
|
|
|
- addOrderLog(s,OrderLogProcess.CWFS.getCode(),"部门修改财务复审,判定审核通过");
|
|
|
- StringBuilder str = new StringBuilder();
|
|
|
- TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
|
|
|
- TOrderNewBo order = torderNewMapper.getSaleIdByOno(s);
|
|
|
- TOrderNew newOrder = new TOrderNew();
|
|
|
- newOrder.setOrderNo(s);
|
|
|
- //如果订单是特批
|
|
|
- if (tOrderNew.getApproval() == ApprovalNewState.TPDSH.getCode() || tOrderNew.getApproval() == ApprovalNewState.TPBH.getCode()) {
|
|
|
- if (StringUtils.isNotEmpty(in.getOperationGuaranteeId())) {
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YYBZSH.getCode());
|
|
|
- str.append(order.getOperationGuaranteeName()).append(",");
|
|
|
- aids.add(order.getOperationGuaranteeId());
|
|
|
- } else if (order.getApprovalStatus() == 0) {
|
|
|
- addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
- addOrderLog(s,OrderLogProcess.TP.getCode(),"部门特批审核未设置,系统自动通过");
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
|
|
|
- newOrder.setApproval(ApprovalNewState.TPTG.getCode());
|
|
|
- } else {
|
|
|
- addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
- newOrder.setProcessStatus(ProcessStatus.YPTPSH.getCode());
|
|
|
- aids.add(order.getApprovalAid());
|
|
|
- str.append(order.getApprovalName()).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- newOrder.setExamineName(str.substring(0,str.length()-1));
|
|
|
- torderNewMapper.updateByPrimaryKeySelective(newOrder);
|
|
|
- }
|
|
|
- torderNewMapper.updateOrderDepFinanceExamineName(list);
|
|
|
+ pushCW_JSZJ_Examine(in, s, aids, 1);
|
|
|
}
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
}
|
|
|
}else {
|
|
|
dep.setRetrialFinanceId(in.getRetrialFinanceId());
|
|
|
- departmentMapper.updateOrderDepFinanceNotExamine(in.getRetrialFinanceId(),useDep.getRetrialFinanceId());
|
|
|
+ departmentMapper.updateOrderDepFinanceNotExamine(in.getRetrialFinanceId(),useDep.getRetrialFinanceId(),useDep.getId());
|
|
|
List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getRetrialFinanceId());
|
|
|
if (!list.isEmpty()){
|
|
|
- torderNewMapper.updateOrderDepFinanceExamineName(list);
|
|
|
+ torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
}
|
|
|
}
|
|
|
updateRetrialFinance=true;
|
|
|
@@ -388,7 +340,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
|
|
|
aids.add(useDep.getFinanceId());
|
|
|
}
|
|
|
torderMidMapper.updateFinanceId(in.getId(),in.getFinanceId());
|
|
|
- asyncUtils.updateFinanceExamine(in.getFinanceId());
|
|
|
+ newOrderChangeMapper.updateExamineById(in.getFinanceId(), OrderChangeProcess.CWZY.getCode());
|
|
|
}
|
|
|
if(updateRetrialFinance){
|
|
|
if (!aids.contains(in.getRetrialFinanceId())){
|
|
|
@@ -419,6 +371,70 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
|
|
|
return departmentMapper.updateByPrimaryKeySelective(dep);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 推送财务/财务复审/技术总监审核下个流程
|
|
|
+ * @param in 部门信息
|
|
|
+ * @param s 订单编号
|
|
|
+ * @param aids 统计需要刷新的财务
|
|
|
+ * @param type 0 技术总监 1财务复审
|
|
|
+ */
|
|
|
+ private void pushCW_JSZJ_Examine(InputDep in, String s, List<String> aids, Integer type) {
|
|
|
+ List<TOrderExamine> tOrderExamines = torderExamineMapper.selectByOrderNo(s, 0);
|
|
|
+ int i = 0;
|
|
|
+ for (TOrderExamine e : tOrderExamines) {
|
|
|
+ if (e.getStatus() == 1) i++;
|
|
|
+ }
|
|
|
+ if (i == tOrderExamines.size()) {
|
|
|
+ //推送订单流程
|
|
|
+ addOrderLog(s,OrderLogProcess.CWFS.getCode(),type==0?"部门修改技术总监为空,系统自动通过":"部门修改财务复审为空,系统自动通过");
|
|
|
+ StringBuilder str = new StringBuilder();
|
|
|
+ TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
|
|
|
+ TOrderNewBo order = torderNewMapper.getSaleIdByOno(s);
|
|
|
+ TOrderNew newOrder = new TOrderNew();
|
|
|
+ newOrder.setOrderNo(s);
|
|
|
+ //如果订单是特批
|
|
|
+ if (tOrderNew.getApproval() == ApprovalNewState.TPDSH.getCode() || tOrderNew.getApproval() == ApprovalNewState.TPBH.getCode()) {
|
|
|
+ if (StringUtils.isNotEmpty(in.getOperationGuaranteeId())) {
|
|
|
+ newOrder.setProcessStatus(ProcessStatus.YYBZSH.getCode());
|
|
|
+ str.append(order.getOperationGuaranteeName()).append(",");
|
|
|
+ aids.add(order.getOperationGuaranteeId());
|
|
|
+ } else if (order.getApprovalStatus() == 0) {
|
|
|
+ addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
+ addOrderLog(s,OrderLogProcess.TP.getCode(),"部门特批审核未设置,系统自动通过");
|
|
|
+ newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
|
|
|
+ newOrder.setApproval(ApprovalNewState.TPTG.getCode());
|
|
|
+ } else {
|
|
|
+ addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
|
|
|
+ newOrder.setProcessStatus(ProcessStatus.YPTPSH.getCode());
|
|
|
+ aids.add(order.getApprovalAid());
|
|
|
+ str.append(order.getApprovalName()).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newOrder.setExamineName(str.substring(0,str.length()-1));
|
|
|
+ torderNewMapper.updateByPrimaryKeySelective(newOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加审核人 财务专员,财务复审,技术总监审核
|
|
|
+ * @param useDep 部门
|
|
|
+ * @param aid 人员编号
|
|
|
+ * @param list 需要刷新审核人的订单
|
|
|
+ */
|
|
|
+ private void addExamine(Department useDep, String aid,List<String> list) {
|
|
|
+ List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YPCW_JSZJ.getCode());
|
|
|
+ Admin admin = adminMapper.selectByPrimaryKey(aid);
|
|
|
+ if (!strings.isEmpty()){
|
|
|
+ for (String s : strings) {
|
|
|
+ torderExamineMapper.insertSelective(new TOrderExamine(s,0,admin.getId(),admin.getName()));
|
|
|
+ if(!list.contains(s)){
|
|
|
+ list.add(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void addOrderLog(String orderNo, Integer process, String remarks) {
|
|
|
TOrderLog tl=new TOrderLog();
|
|
|
tl.setAid(AFTConstants.SUPERADMIN_ID);
|