Browse Source

修改订单跳过审核修改开发

anderx 1 year ago
parent
commit
757bc865ce

+ 1 - 1
src/main/java/com/goafanti/common/dao/DepartmentMapper.java

@@ -126,7 +126,7 @@ public interface DepartmentMapper {
     void updateDepFinance(@Param("aid") String aid, @Param("transferId") String transferId);
 
 
-    void updateOrderDepFinanceNotExamine(@Param("newFinanceId") String newFinanceId, @Param("useFinanceId") String useFinanceId);
+    void updateOrderDepFinanceNotExamine(@Param("newFinanceId") String newFinanceId, @Param("useFinanceId") String useFinanceId, @Param("depId") String depId);
 
     void updateExpenseFinanceNotExamine(@Param("newFinanceId") String newFinanceId, @Param("useFinanceId") String useFinanceId);
 

+ 1 - 1
src/main/java/com/goafanti/common/dao/TOrderExamineMapper.java

@@ -34,5 +34,5 @@ public interface TOrderExamineMapper {
 
     void deleteByTid(Integer tid);
 
-    void deleteExamineFinance(String aid);
+    void deleteExamineFinance(@Param("depId") String depId, @Param("aid") String aid);
 }

+ 3 - 1
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -107,11 +107,13 @@ public interface TOrderNewMapper {
 
     List<String> selectByFinanceNotExamine(String financeId);
 
-    void updateOrderDepFinanceExamineName(List<String> list);
+    void updateOrderDepFinanceExamineName(@Param("list") List<String> list, @Param("processStatus") Integer processStatus);
 
     List<ExpenseCountsBo> selectExpenseCount(ExpenseCountsInput in);
 
     List<ExpenseCountsBo> selectExpenseDepCount(ExpenseCountsInput in);
 
 
+    List<String> selectByDepAndProcess(@Param("depId") String depId, @Param("processStatus") Integer processStatus);
+
 }

+ 4 - 4
src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml

@@ -610,10 +610,10 @@
     </update>
 
     <update id="updateOrderDepFinanceNotExamine">
-        update t_order_examine a ,admin b
-        set a.aid=b.id , aname =b.name
-        where a.aid=#{useFinanceId} and a.status =0
-          and b.id= #{newFinanceId}
+        update t_order_examine a left join t_order_new b on a.order_no =b.order_no,admin c
+        set a.aid=c.id , a.aname =c.name
+        where a.aid= #{useFinanceId} and a.status =0
+          and c.id= #{newFinanceId}   and b.order_dep=#{depId}
     </update>
     <update id="updateExpenseFinanceNotExamine">
         update expense_account_examine a ,admin b

+ 2 - 2
src/main/java/com/goafanti/common/mapper/TOrderExamineMapper.xml

@@ -180,8 +180,8 @@
   </select>
 
   <delete id="deleteExamineFinance">
-    delete from t_order_examine
-    where aid = #{aid} and status=0
+    delete a  from t_order_examine a left join t_order_new b on a.order_no =b.order_no
+    where a.status =0 and a.aid =#{aid} and b.order_dep = #{depId}
   </delete>
 
 </mapper>

+ 7 - 1
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -2101,7 +2101,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     <foreach collection="list" item="e" close=")" open="(" separator=",">
       #{e}
     </foreach>
-    and x.order_no =y.order_no and x.process_status=3
+    and x.order_no =y.order_no and x.process_status= #{processStatus}
   </update>
 
   <select id="selectAidAndDate" resultType="java.lang.Integer">
@@ -2245,5 +2245,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     </if>
 
   </select>
+  <select id="selectByDepAndProcess" resultType="string">
+    select  a.order_no
+    from t_order_new a
+    where a.order_dep = #{depId}
+    and a.process_status = #{processStatus}
+  </select>
 
 </mapper>

+ 4 - 0
src/main/java/com/goafanti/organization/controller/AdminOrganizationController.java

@@ -117,6 +117,10 @@ public class AdminOrganizationController extends BaseApiController{
 			res.getError().add(buildError("特批审核开启必须设置特批人"));
 			return res;
 		}
+		if (StringUtils.isBlank(in.getFinanceId())){
+			res.getError().add(buildError("部门财务审核必须设置"));
+			return res;
+		}
 		int i=organizationService.updateOrganization(in);
 		return res.data(i);
 	}

+ 108 - 92
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -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);