Browse Source

订单派单BUG修复

anderx 3 years ago
parent
commit
7bb07ca04c

+ 5 - 0
src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java

@@ -43,4 +43,9 @@ public interface TChangeTaskMapper {
                             @Param("serviceYear")String serviceYear, @Param("yearSum")Integer yearSum, @Param("contractTerm")String contractTerm);
 
     List<TChangeTask> selectBySuper(@Param("splitSuper") Integer splitSuper, @Param("changeSplitSuper") Integer changeSplitSuper, @Param("cid") Integer cid);
+
+    void updateTypeBatch(@Param("type") Integer type, @Param("list") List<Integer> list);
+
+
+    void selectByServiceYear(@Param("serviceYear") String serviceYear, @Param("sliptSuper")Integer sliptSuper, @Param("changeSplitSuper")Integer changeSplitSuper);
 }

+ 11 - 1
src/main/java/com/goafanti/common/mapper/TChangeTaskMapper.xml

@@ -344,7 +344,7 @@
   	 and a.cid= #{id} order by a.id
   </select>
     <update id="updateByTid">
-  		update t_change_task set type= #{type}
+  		update t_change_task set type= #{type},service_life=null,year_sum=null
   		where 1=1
   		<if test="tid !=null">
   		and tid= #{tid}
@@ -387,6 +387,13 @@
       and split_super= #{sid}
     </if>
   </update>
+  <update id="updateTypeBatch">
+    update t_change_task set type= #{type}
+    where id in
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
+      #{id}
+    </foreach>
+  </update>
 
 
   <select id="selectBySuper" resultType="com.goafanti.order.bo.TChangeTaskOut">
@@ -415,4 +422,7 @@
     where noc.process_state &lt; 4 and noc.status in (0,1,2)
       and tct.tid= #{tid}
   </select>
+  <select id="selectByServiceYear">
+
+  </select>
 </mapper>

+ 18 - 0
src/main/java/com/goafanti/order/controller/OrderChangeApiController.java

@@ -555,5 +555,23 @@ public class OrderChangeApiController extends CertifyApiController {
 
 
 
+	/**
+	 * 新增会员子项目
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/updateMemberSonProject" ,method = RequestMethod.POST)
+	public Result updateMemberSonProject(Integer id){
+		Result res = new Result();
+		if(id==null){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","参数"));
+			return res;
+		}
+		return res.data(orderChangeService.updateMemberSonProject( id));
+
+	}
+
+
+
 
 }

+ 2 - 0
src/main/java/com/goafanti/order/service/OrderChangeService.java

@@ -111,4 +111,6 @@ public interface OrderChangeService {
     Object addMemberSonProject(Integer id, String serviceYear, String taskComment);
 
 	int deleteMemberSonProject(Integer id);
+
+    Object updateMemberSonProject(Integer id);
 }

+ 52 - 16
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -1015,10 +1015,12 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				for (TChangeTaskOut tChangeTaskOut : list) {
 					if(tChangeTaskOut.getSplitStatus()==1){
 						//变更会员子项目有2中,一种是复制过来的,根据上级项目编号关联,还一种是新增的根据变更项目编号关联
-						List<TChangeTask> tChangeTasks =new ArrayList<>();
-						if (tChangeTaskOut.getTid()!=null)tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(tChangeTaskOut.getTid(), null, cid));
-						tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(null,tChangeTaskOut.getId(),cid));
-						tChangeTaskOut.setList(tChangeTasks);
+
+						TChangeTask input= new TChangeTask();
+						input.setCid(cid);
+						input.setSplitSuper(tChangeTaskOut.getTid());
+						input.setChangeSplitSuper(tChangeTaskOut.getId());
+						tChangeTaskOut.setList(getChangeSonTasks(input));
 					}
 				}
 				return list;
@@ -1062,16 +1064,15 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					}else if(t.getType()==2){
 						tChangeTaskMapper.updateByTid(t.getTid(),null,tt.getCid(),2);
 						if (tt.getSplitStatus()==1) {
-
 							if (t.getServiceLife()!=null||t.getServiceYear()!=null||t.getYearSum()!=null||t.getContractTerm()!=null){
-								tChangeTaskMapper.updateMemberByTid(tt.getTid(),t.getCid(),2,t.getServiceLife(),t.getServiceYear(),t.getYearSum(),t.getContractTerm());
-							}else {
-								tChangeTaskMapper.updateByTid(null,tt.getTid(),tt.getCid(),2);
+								tChangeTaskMapper.updateMemberByTid(tt.getTid(),t.getCid(),null,t.getServiceLife(),t.getServiceYear(),t.getYearSum(),t.getContractTerm());
 							}
+							updateChangeType(tt);
 						}else if(tt.getSplitStatus()==2) {
 								tChangeTaskMapper.updateByTid(tt.getSplitSuper(),null,tt.getCid(),2);
 						}
 					}
+					//如果没有tid是新增项目则直接删除
 				}else {
 					if (t.getType()==3) {
 						tChangeTaskMapper.deleteByPrimaryKey(t.getId());
@@ -1081,7 +1082,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				return tChangeTaskMapper.updateByPrimaryKeySelective(t);
 			}
 
-			@Override
+	private void updateChangeType(TChangeTask t) {
+		List<TChangeTask> changeSonTasks = getChangeSonTasks(t);
+		List<Integer> list=new ArrayList<>();
+		for (TChangeTask changeSonTask : changeSonTasks) {
+			if (changeSonTask.getType()==0||changeSonTask.getType()==2){
+				list.add(changeSonTask.getId());
+			}
+		}
+		if(!list.isEmpty())tChangeTaskMapper.updateTypeBatch(2,list);
+	}
+
+	@Override
 			public int updateChangeDun(TChangeDun t) {
 				if(t.getCustomizeTimes()!=null)t.setCustomizeTime(DateUtils.StringToDate(t.getCustomizeTimes(), AFTConstants.YYYYMMDD));
 				if (t.getType()==1||t.getType()==2) {
@@ -1209,13 +1221,17 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 	@Override
 	public Object addMemberSonProject(Integer id, String serviceYear, String taskComment) {
+		//先修改父项目
 		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		Integer tid=tChangeTask.getTid();
 		tChangeTask.setSplitStatus(1);
 		tChangeTaskMapper.updateByPrimaryKey(tChangeTask);
+		//在判断是否有删除的年份没有就新增
 		tChangeTask.setId(null);
+		tChangeTask.setTid(null);
 		tChangeTask.setSplitStatus(2);
-		if(tChangeTask.getTid()!=null){
-			tChangeTask.setSplitSuper(tChangeTask.getTid());
+		if(tid!=null){
+			tChangeTask.setSplitSuper(tid);
 		}else {
 			tChangeTask.setChangeSplitSuper(id);
 		}
@@ -1230,12 +1246,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	@Override
 	public int deleteMemberSonProject(Integer id) {
 		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
-		tChangeTask.setType(3);
-		tChangeTaskMapper.updateByPrimaryKeySelective(tChangeTask);
-		List<TChangeTask> tChangeTasks = tChangeTaskMapper.selectBySuper(tChangeTask.getSplitSuper(),null, tChangeTask.getCid());
-		tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(null,tChangeTask.getChangeSplitSuper(), tChangeTask.getCid()));
+		if (tChangeTask.getType()==1){
+			tChangeTaskMapper.deleteByPrimaryKey(id);
+		}else {
+			TChangeTask newtChangeTask = new TChangeTask();
+			newtChangeTask.setId(id);
+			newtChangeTask.setType(3);
+			tChangeTaskMapper.updateByPrimaryKeySelective(newtChangeTask);
+
+		}
+		List<TChangeTask> tChangeTasks = getChangeSonTasks(tChangeTask);
 		//如果没有子项目则修改上级
-		if (tChangeTasks==null||tChangeTasks.isEmpty()){
+		if (tChangeTasks == null || tChangeTasks.isEmpty()) {
 			TChangeTask changeTask = new TChangeTask();
 			changeTask.setId(tChangeTask.getSplitSuper());
 			changeTask.setSplitStatus(0);
@@ -1244,5 +1266,19 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		return 1;
 	}
 
+	@Override
+	public Object updateMemberSonProject(Integer id) {
+		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		tChangeTask.setType(2);
+		tChangeTaskMapper.updateByPrimaryKeySelective(tChangeTask);
+		return tChangeTask;
+	}
+
+	private List<TChangeTask> getChangeSonTasks(TChangeTask tChangeTask) {
+		List<TChangeTask> tChangeTasks = tChangeTaskMapper.selectBySuper(tChangeTask.getSplitSuper(),null, tChangeTask.getCid());
+		tChangeTasks.addAll(tChangeTaskMapper.selectBySuper(null, tChangeTask.getChangeSplitSuper(), tChangeTask.getCid()));
+		return tChangeTasks;
+	}
+
 
 }