Browse Source

Merge branch 'test'

anderx 1 year ago
parent
commit
0655ba7631

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

@@ -126,9 +126,10 @@ 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);
 
     void updateNull(InputDep in);
+
 }

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

@@ -33,4 +33,6 @@ public interface TOrderExamineMapper {
     List<TOrderExamine> selectExamineBytidAndAid(@Param("list")List<Integer> ids,@Param("aid") String aid);
 
     void deleteByTid(Integer tid);
+
+    void deleteExamineFinance(@Param("depId") String depId, @Param("aid") String aid);
 }

+ 4 - 2
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -105,13 +105,15 @@ public interface TOrderNewMapper {
 
     Department selectDepByOrderNo(String orderNo);
 
-    List<String> selectByFinanceNotExamine(String financeId);
+    List<String> selectByFinanceNotExamine(@Param("financeId") String financeId, @Param("depId") String depId);
 
-    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);
+
 }

+ 2 - 2
src/main/java/com/goafanti/common/enums/OrderLogProcess.java

@@ -38,8 +38,8 @@ public enum OrderLogProcess {
 	HYXMWC(23,"会员项目完成"),
 	DDZJ(24,"订单转交"),
 
-	YYBZSHTG(25,"运营保障审核通过"),
-	YYBZSHBH(25,"运营保障审核驳回"),
+	YYBZSHTG(26,"运营保障审核通过"),
+	YYBZSHBH(27,"运营保障审核驳回"),
 	NOT(99,"未知"),
 	;
 

+ 10 - 7
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
@@ -621,15 +621,18 @@
         where a.process_status =3 and a.status =0 and a.auditor = #{useFinanceId}
           and b.id= #{newFinanceId}
     </update>
-    <update id="updateNull">
+    <update id="updateNull" parameterType="com.goafanti.organization.bo.InputDep">
         update department
         <set>
-            <if test="thAdminId ==null">
-                th_admin_id=null,
+            <if test="techAdminId ==null">
+                tech_admin_id=null,
             </if>
             <if test="operationGuaranteeId ==null">
                 operation_guarantee_id=null,
             </if>
+            <if test="retrialFinanceId==null">
+                retrial_finance_id=null,
+            </if>
         </set>
         where id=#{id}
     </update>

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

@@ -167,7 +167,8 @@
     delete from t_order_examine
     where tid = #{tid}
   </delete>
-  <select id="selectExamineBytidAndAid" resultMap="BaseResultMap">
+
+    <select id="selectExamineBytidAndAid" resultMap="BaseResultMap">
     select
     <include refid="Base_Column_List" />
     from t_order_examine a
@@ -178,4 +179,9 @@
     and a.aid= #{aid}
   </select>
 
+  <delete id="deleteExamineFinance">
+    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>

+ 10 - 5
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1406,8 +1406,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
                        left join admin f on e.initiate=f.id left join organization_identity g on a.buyer_id=g.uid
                        left join t_order_high_tech tht on a.order_no=tht.order_no
                        left join (select order_no ,GROUP_CONCAT(`type`)`type` ,GROUP_CONCAT(type_explain)type_explain
-                                  from t_order_approval where order_no=#{orderNo,jdbcType=VARCHAR}
-                                  group by order_no) toa on a.order_no=toa.order_no
+                                  from t_order_approval group by order_no) toa on a.order_no=toa.order_no
     where   a.order_no = #{orderNo,jdbcType=VARCHAR}
   </select>
 
@@ -2102,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.order_no =y.order_no and x.process_status= #{processStatus}
   </update>
 
   <select id="selectAidAndDate" resultType="java.lang.Integer">
@@ -2135,9 +2134,9 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     where b.order_no= #{orderNo}
   </select>
   <select id="selectByFinanceNotExamine" resultType="string">
-    select a.order_no orderNo,a.process_status processStatus
+    select a.order_no orderNo
     from t_order_new a left join t_order_examine b on a.order_no=b.order_no
-    where b.status=0 and b.aid = #{financeId} and a.process_status = 3
+    where  b.aid = #{financeId} and a.process_status = 3 and a.order_dep= #{depId}
   </select>
     <select id="selectExpenseCount" parameterType="com.goafanti.expenseAccount.bo.ExpenseCountsInput" resultType="com.goafanti.expenseAccount.bo.ExpenseCountsBo">
       select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,toc.max_duration maxDuration ,toc.actual_duration actualDuration ,
@@ -2246,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>

+ 1 - 2
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -556,7 +556,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 
 		//如果订单是特批
 		if (new1.getApproval()==ApprovalNewState.TPDSH.getCode()|| new1.getApproval()==ApprovalNewState.TPBH.getCode()) {
-			if (order.getOperationGuaranteeId()!=null){
+			if (StringUtils.isNotEmpty(order.getOperationGuaranteeId())){
 				t.setProcessStatus(ProcessStatus.YYBZSH.getCode());
 				str.append(order.getOperationGuaranteeName()).append(",");
 				aids.add(order.getOperationGuaranteeId());
@@ -608,7 +608,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	}
 
 	private void addTorderLog(TOrderNew t) {
-		boolean flag=judgeOrderExamine(t.getOrderNo());
 		TOrderLog tl=new TOrderLog();
 		tl.setAid(AFTConstants.SUPERADMIN_ID);
 		tl.setProcess(OrderLogProcess.TP.getCode());

+ 5 - 0
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -710,12 +710,17 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	 * @param orderNo
 	 */
 	public void pushOrderPublicReleaseCount(String orderNo) {
+		//获取所有公出、订单与会员信息
 		List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
 		TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(orderNo);
 		List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(t.getOrderNo());
+		//公出时间统计
 		BigDecimal durationCount = BigDecimal.ZERO;
+		//公出次数
 		int count=0;
+		//年数
 		int yearSum=1;
+		//公出人数
 		List<String> peopleList = new ArrayList<>();
 		LocalDate startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
 		String sumYear= String.valueOf(startDate.getYear());

+ 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);
 	}

+ 301 - 37
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -1,17 +1,19 @@
 package com.goafanti.organization.service.impl;
 
 import com.goafanti.admin.bo.AdminListBo;
-import com.goafanti.common.dao.DepartmentMapper;
-import com.goafanti.common.dao.ExpenseConfigDetailsMapper;
-import com.goafanti.common.dao.TOrderMidMapper;
-import com.goafanti.common.dao.TOrderNewMapper;
-import com.goafanti.common.model.Department;
-import com.goafanti.common.model.ExpenseConfigDetails;
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.dao.*;
+import com.goafanti.common.enums.OrderLogProcess;
+import com.goafanti.common.model.*;
 import com.goafanti.common.utils.AsyncUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 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;
 import com.goafanti.organization.bo.OrganizationListOut;
@@ -35,6 +37,15 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 	private TOrderNewMapper torderNewMapper;
 	@Autowired
 	private TOrderMidMapper torderMidMapper;
+	@Autowired
+	private TOrderExamineMapper torderExamineMapper;
+	@Autowired
+	private TOrderLogMapper tOrderLogMapper;
+	@Autowired
+	private AdminMapper	adminMapper;
+	@Autowired
+	private NewOrderChangeMapper newOrderChangeMapper;
+
 
 	@Autowired
 	private AsyncUtils asyncUtils;
@@ -229,49 +240,208 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		dep.setApprovalAid(in.getApprovalAid());
 		dep.setTechAdminId(in.getTechAdminId());
 		dep.setOperationGuaranteeId(in.getOperationGuaranteeId());
+		pushUpdateDep(in, useDep, dep);
+		return departmentMapper.updateByPrimaryKeySelective(dep);
+	}
+
+	/**
+	 * 根据传入参数处理各种情况,并且处理传入数据
+	 * @param in 输入部门参数
+	 * @param useDep 原部门参数
+	 * @param dep  修改部门擦拭
+	 */
+	private void pushUpdateDep(InputDep in, Department useDep, Department dep) {
+		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;
-		if(StringUtils.isNotBlank(in.getFinanceId())&&!in.getFinanceId().equals(useDep.getFinanceId())){
-			dep.setFinanceId(in.getFinanceId());
-			//处理订单
-			departmentMapper.updateOrderDepFinanceNotExamine(in.getFinanceId(),useDep.getFinanceId());
-			List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getFinanceId());
-			if (!list.isEmpty()){
-				torderNewMapper.updateOrderDepFinanceExamineName(list);
+		//获取需要重新刷新的财务
+		List<String> aids =new ArrayList<>();
+		if(!in.getFinanceId().equals(useDep.getFinanceId())){
+				dep.setFinanceId(in.getFinanceId());
+				//审核人切换
+				departmentMapper.updateOrderDepFinanceNotExamine(in.getFinanceId(), useDep.getFinanceId(), useDep.getId());
+				//查询切换后的订单刷新审核人
+				List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getFinanceId(), useDep.getId());
+				if (!list.isEmpty()){
+					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);
+				dep.setTechAdminId(null);
+			}
+			if(StringUtils.isBlank(in.getOperationGuaranteeId())){
+				in.setOperationGuaranteeId(null);
+				dep.setOperationGuaranteeId(null);
+			}
+			if(StringUtils.isBlank(in.getRetrialFinanceId())){
+				in.setRetrialFinanceId(null);
+				dep.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(),useDep.getId());
+				//再删除旧单需要审核的
+				torderExamineMapper.deleteExamineFinance(useDep.getId(), useDep.getTechAdminId());
+				if (!list.isEmpty()){
+					//先把药推送到下个流程的查出来
+					for (String s : 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(), useDep.getId());
+				if (!list.isEmpty()){
+					torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
+				}
 			}
-
-			updateFinance=true;
 		}
-		if (StringUtils.isNotBlank(in.getRetrialFinanceId())&&
-				!in.getRetrialFinanceId().equals(useDep.getRetrialFinanceId())){
-			dep.setRetrialFinanceId(in.getRetrialFinanceId());
-			departmentMapper.updateOrderDepFinanceNotExamine(in.getRetrialFinanceId(),useDep.getRetrialFinanceId());
-			List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getRetrialFinanceId());
-			if (!list.isEmpty()){
-				torderNewMapper.updateOrderDepFinanceExamineName(list);
+		if (!Objects.equals(in.getRetrialFinanceId(),useDep.getRetrialFinanceId())){
+			if(StringUtils.isBlank(in.getRetrialFinanceId())) {
+				//先将旧的查出来
+				List<String> list = torderNewMapper.selectByFinanceNotExamine(useDep.getRetrialFinanceId(), useDep.getId());
+				//再删除旧单需要审核的
+				torderExamineMapper.deleteExamineFinance(useDep.getId(), useDep.getRetrialFinanceId());
+				if (!list.isEmpty()) {
+					//先把药推送到下个流程的查出来
+					for (String s : 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(), useDep.getId());
+				List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getRetrialFinanceId(), useDep.getId());
+				if (!list.isEmpty()){
+					torderNewMapper.updateOrderDepFinanceExamineName(list,ProcessStatus.YPCW_JSZJ.getCode());
+				}
 			}
 			updateRetrialFinance=true;
 		}
+		if (in.getOperationGuaranteeId()==null&&StringUtils.isNotBlank(useDep.getOperationGuaranteeId())){
+			List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YYBZSH.getCode());
+			for (String s : strings) {
+				addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
+				TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
+				TOrderNewBo order = torderNewMapper.getSaleIdByOno(s);
+				StringBuilder str = new StringBuilder();
+				TOrderNew newOrder = new TOrderNew();
+				newOrder.setOrderNo(s);
+				if (order.getApprovalStatus() == 0) {
+					addOrderLog(s,OrderLogProcess.TP.getCode(),"部门特批审核未设置,系统自动通过");
+					newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+					newOrder.setApproval(ApprovalNewState.TPTG.getCode());
+					pushJSZJidAndName(aids, str);
+				} else {
+					newOrder.setProcessStatus(ProcessStatus.YPTPSH.getCode());
+					if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.TPDSH.getCode())){
+						aids.add(order.getApprovalAid());
+						str.append(order.getApprovalName()).append(",");
+					}else {
+						if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.DSZBH.getCode())) {
+							List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.APPROVAL_DECISION);
+							for (Admin admin : admins) {
+								aids.add(admin.getId());
+								str.append(admin.getName()).append(",");
+							}
+
+						}
+					}
+				}
+				newOrder.setExamineName(str.substring(0,str.length()-1));
+				torderNewMapper.updateByPrimaryKeySelective(newOrder);
+			}
+		} else if (Objects.equals(useDep.getOperationGuaranteeId(),in.getOperationGuaranteeId())) {
+			List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YYBZSH.getCode());
+			Admin admin = adminMapper.selectByPrimaryKey(in.getOperationGuaranteeId());
+			for (String s : strings) {
+				TOrderNew newOrder = new TOrderNew();
+				newOrder.setOrderNo(s);
+				newOrder.setExamineName(admin.getName());
+				torderNewMapper.updateByPrimaryKeySelective(newOrder);
+			}
+		}
+		//关掉特批审核
+		if (in.getApproval()==0&&useDep.getApproval()==1){
+			List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YPTPSH.getCode());
+			for (String s : strings) {
+				TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
+				if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.TPDSH.getCode())){
+					TOrderNew newOrder=new TOrderNew();
+					List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
+					StringBuilder str = new StringBuilder();
+					for (Admin admin : admins) {
+						str.append(admin.getName()).append(",");
+					}
+					newOrder.setExamineName(str.substring(0,str.length()-1));
+					newOrder.setOrderNo(s);
+					newOrder.setApproval(ApprovalNewState.TPTG.getCode());
+					newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+					torderNewMapper.updateByPrimaryKeySelective(newOrder);
+					addOrderLog(s,OrderLogProcess.TP.getCode(),"特批审核关闭,系统自动通过");
+				}
+			}
+		} else if (in.getApprovalAid().equals(useDep.getApprovalAid())) {
+			List<String> strings = torderNewMapper.selectByDepAndProcess(useDep.getId(), ProcessStatus.YPTPSH.getCode());
+			for (String s : strings) {
+				TOrderNew tOrderNew = torderNewMapper.selectByPrimaryKey(s);
+				if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.TPDSH.getCode())){
+					TOrderNewBo order = torderNewMapper.getSaleIdByOno(s);
+					TOrderNew newOrder=new TOrderNew();
+					newOrder.setOrderNo(s);
+					newOrder.setExamineName(order.getApprovalName());
+					torderNewMapper.updateByPrimaryKeySelective(newOrder);
+				}
+			}
+
+		}
+
 		if (in.getExpenseFinanceId()!=null&&!in.getExpenseFinanceId().equals(useDep.getExpenseFinanceId())){
 			dep.setExpenseFinanceId(in.getExpenseFinanceId());
-			departmentMapper.updateExpenseFinanceNotExamine(in.getExpenseFinanceId(),useDep.getExpenseFinanceId());
+			departmentMapper.updateExpenseFinanceNotExamine(in.getExpenseFinanceId(), useDep.getExpenseFinanceId());
 		}
-
-		//获取需要重新刷新的财务
-		List<String> aids =new ArrayList<>();
 		if (updateFinance){
-			if (aids.contains(in.getFinanceId())){
-				aids.add(in.getFinanceId());
-			}
+			aids.add(in.getFinanceId());
 			if(!aids.contains(useDep.getFinanceId())){
 				aids.add(useDep.getFinanceId());
 			}
-			torderMidMapper.updateFinanceId(in.getId(),in.getFinanceId());
-			asyncUtils.updateFinanceExamine(in.getFinanceId());
+			torderMidMapper.updateFinanceId(in.getId(), in.getFinanceId());
+			newOrderChangeMapper.updateExamineById(in.getFinanceId(), OrderChangeProcess.CWZY.getCode());
 		}
 		if(updateRetrialFinance){
-			if (aids.contains(in.getRetrialFinanceId())){
+			if (!aids.contains(in.getRetrialFinanceId())){
 				aids.add(in.getRetrialFinanceId());
 			}
 			if(!aids.contains(useDep.getRetrialFinanceId())){
@@ -295,18 +465,112 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		if (in.getCashierExamine()==1){
 			dep.setCashierExamine(in.getCashierExamine());
 		}
-		if (in.getTechAdminId()==null){
-			departmentMapper.updateNull(in);
+	}
+
+	/**
+	 * 推送财务/财务复审/技术总监审核下个流程
+	 * @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());
+					pushJSZJidAndName(aids, str);
+				} else {
+					addOrderLog(s,OrderLogProcess.YYBZSHTG.getCode(),"运营保障审核人未设置,系统自动通过");
+					newOrder.setProcessStatus(ProcessStatus.YPTPSH.getCode());
+					if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.TPDSH.getCode())){
+						aids.add(order.getApprovalAid());
+						str.append(order.getApprovalName()).append(",");
+					}else {
+						if (Objects.equals(tOrderNew.getApproval(), ApprovalNewState.DSZBH.getCode())) {
+							List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.APPROVAL_DECISION);
+							for (Admin admin : admins) {
+								aids.add(admin.getId());
+								str.append(admin.getName()).append(",");
+							}
+						}
+					}
+				}
+			}else {
+				newOrder.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+				newOrder.setApproval(ApprovalNewState.TPTG.getCode());
+				pushJSZJidAndName(aids, str);
+			}
+			newOrder.setExamineName(str.substring(0,str.length()-1));
+			torderNewMapper.updateByPrimaryKeySelective(newOrder);
+		}
+
+	}
+
+	private void pushJSZJidAndName(List<String> aids, StringBuilder str) {
+		List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
+		for (Admin admin : admins) {
+			aids.add(admin.getId());
+			str.append(admin.getName()).append(",");
 		}
-        return departmentMapper.updateByPrimaryKeySelective(dep);
+	}
+
+	/**
+	 * 添加审核人 财务专员,财务复审,技术总监审核
+	 * @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);
+		tl.setProcess(process);
+		tl.setOrderNo(orderNo);
+		tl.setRemarks(remarks);
+		tOrderLogMapper.insertSelective(tl);
 	}
 
 	/**
 	 * 如果更换了负责人刷新中间表
 	 */
 	private void checkFinaceUpdate(List<String> aids) {
-		asyncUtils.financeCoutSwitch(aids);
-
+		if (!aids.isEmpty()){
+			asyncUtils.financeCoutSwitch(aids);
+		}
 	}
 
 	@Override

+ 2 - 2
src/main/resources/props/config_local.properties

@@ -1,8 +1,8 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 
-#static.host=//static.jishutao.com/1.3.18
-static.host=//172.16.1.187/1.3.18
+static.host=//static.jishutao.com/1.3.18
+#static.host=//172.16.1.187/1.3.18
 
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20240430?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 #jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false