Browse Source

项目中间表与订单中间表同步

anderx 3 years ago
parent
commit
fbd49454c9

+ 10 - 0
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -12,9 +12,15 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.goafanti.common.dao.TOrderMidMapper;
+import com.goafanti.common.dao.TOrderTaskMapper;
 import com.goafanti.common.model.TOrderMid;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.utils.excel.Excel;
+import com.goafanti.order.bo.TOrderTaskBo;
+import com.goafanti.order.enums.NewProjectStatus;
+import com.goafanti.order.enums.ProjectStage;
+import com.goafanti.order.enums.ProjectType;
+import com.goafanti.order.service.OrderProjectService;
 import org.apache.commons.collections4.map.HashedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
@@ -105,6 +111,9 @@ public class PublicController extends CertifyApiController {
 	@Autowired
 	private DistrictGlossoryService	districtGlossoryService;
 
+	@Autowired
+	private OrderProjectService	orderProjectService;
+
 	@Value(value = "${patentTemplate}")
 	private String					patentTemplate		= null;
 
@@ -752,6 +761,7 @@ public class PublicController extends CertifyApiController {
 		List<TOrderMid> list = tOrderMidMapper.selectAll();
 		for (TOrderMid mid : list) {
 			tOrderMidMapper.updateCostAmount(mid.getOrderNo());
+			orderProjectService.updateMidServiceProject(mid.getOrderNo());
 		}
 		return new Result().data(1);
 	}

+ 0 - 6
src/main/java/com/goafanti/common/dao/TOrderMidMapper.java

@@ -48,12 +48,6 @@ public interface TOrderMidMapper {
 
     int judgeProjectType(String orderNo);
 
-    /**
-     * 修改订单中间表的显示的所有名称和所有分类
-     * @param orderNo
-     */
-    void updateCountProjectAndType(String orderNo);
-
 
     List<TOrderMid> selectAll();
 }

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

@@ -80,4 +80,5 @@ public interface TOrderTaskMapper {
     List<TChangeTask> selectByAid(String aid);
 
     Integer getSplitCount(Integer tid);
+
 }

+ 1 - 8
src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml

@@ -701,14 +701,7 @@
   </select>
 
 
-    <update id="updateCountProjectAndType">
-    update t_order_mid a ,(select a.order_no ,GROUP_CONCAT(DISTINCT a.commodity_name )pname, GROUP_CONCAT(DISTINCT c.cname )cname
-                           from t_order_task a left join business_project b on a.commodity_id =b.id
-                                               left join business_category c on b.cid =c.id
-                           group by a.order_no )b
-    set a.service_project =b.pname,a.service_type =b.cname
-    where a.order_no=b.order_no and a.order_no = #{orderNo};
-  </update>
+
 
   <select id="selectAll" resultType="com.goafanti.common.model.TOrderMid">
     select order_no orderNo

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

@@ -745,7 +745,8 @@
       o.order_status orderStatus,a.project_type projectType,o.sales_type salesType,o.other ,o.delete_sign deleteSign, a.order_receivables orderReceivables,
       date_format(a.`final_Receivables_time`, '%Y-%m-%d %H:%i:%s')finalReceivablesTime,a.patent_cost patentCost,a.patent_cost_actual patentCostActual ,
       a.soft_cost softCost ,a.soft_cost_actual softCostActual ,a.audit_cost auditCost ,a.audit_cost_actual auditCostActual ,a.other_cost otherCost ,
-      a.other_cost_actual otherCostActual , a.expect_profit expectProfit ,a.actual_profit  actualProfit
+      a.other_cost_actual otherCostActual , a.expect_profit expectProfit ,a.actual_profit  actualProfit,a.service_type serviceType,
+      a.service_project serviceProject
     from t_order_new o left join department d on o.order_dep = d.id left join `user` u on o.buyer_id = u.id left join t_order_mid a on o.order_no=a.order_no
     left join (select * from  t_order_outsource where type=0) too on o.order_no=too.order_no where delete_sign in(0,2) and approval in(0,1,2,4,5)
     and outsource=   #{o.outsource,jdbcType=INTEGER}

+ 11 - 10
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -811,16 +811,16 @@
 
   <select id="selectOrderTaskAll" resultType="com.goafanti.order.bo.TOrderTaskBo">
     select a.id,e.contract_no contractNo,a.order_no as orderNo,h.nickname userName,f.name salesmanName,a.outsource_name outsourceName,a.outsource,
-           a.outsource_price outsourcePrice,g.name depName,e.order_status orderStatus,d.name as contacts,d.contact_mobile as contactsMobile,a.main, c.cname,
-           c.sort cSort,a.commodity_name as commodityName,a.commodity_quantity as commodityQuantity,i.price,a.certificate_number as certificateNumber,a.receiver_name receiverName,
-           a.commodity_id as commodityId,a.manager_id managerId,a.consultant_id consultantId,a.project_status as projectStatus,a.set_up_amount setUpAmount,
-           a.task_comment as taskComment ,a.commodity_price as commodityPrice, a.task_status as taskStatus,  a.task_receiver as taskReceiver ,
-           a.split_status splitStatus,a.split_super splitSuper,a.split_aid splitAid,a.split_time splitTime,a.patent_type patentType,ttm.contract_term contractTerm,
-           a.picture_url pictureUrl, ttm.service_life serviceLife ,ttm.service_year serviceYear,ttm.year_sum yearSum,
-            tm.last_year lastYear,tm.last_year_capital lastYearCapital,tm.last_year_income lastYearIncome
-    from t_order_task a left join business_project b on a.commodity_id=b.id left join t_order_new e on a.order_no=e.order_no
-    left join admin f on e.salesman_id=f.id left join department g on e.order_dep=g.id left join user h on e.buyer_id=h.id
-    left join business_project i on a.commodity_id=i.id left join business_category c on b.cid=c.id left join admin d on a.task_receiver=d.id
+    a.outsource_price outsourcePrice,g.name depName,e.order_status orderStatus,d.name as contacts,d.contact_mobile as contactsMobile,a.main, c.cname,
+    c.sort cSort,a.commodity_name as commodityName,a.commodity_quantity as commodityQuantity,i.price,a.certificate_number as certificateNumber,a.receiver_name receiverName,
+    a.commodity_id as commodityId,a.manager_id managerId,a.consultant_id consultantId,a.project_status as projectStatus,a.set_up_amount setUpAmount,
+    a.task_comment as taskComment ,a.commodity_price as commodityPrice, a.task_status as taskStatus,  a.task_receiver as taskReceiver ,
+    a.split_status splitStatus,a.split_super splitSuper,a.split_aid splitAid,a.split_time splitTime,a.patent_type patentType,ttm.contract_term contractTerm,
+    a.picture_url pictureUrl, ttm.service_life serviceLife ,ttm.service_year serviceYear,ttm.year_sum yearSum,
+    tm.last_year lastYear,tm.last_year_capital lastYearCapital,tm.last_year_income lastYearIncome
+    from t_order_task a left join t_order_new e on a.order_no=e.order_no left join admin f on e.salesman_id=f.id
+    left join department g on e.order_dep=g.id left join user h on e.buyer_id=h.id left join business_project i on a.commodity_id=i.id
+    left join business_category c on i.cid=c.id left join admin d on a.task_receiver=d.id
     left join t_task_member ttm on a.id=ttm.tid left join t_task_mid tm on a.id=tm.tid
     where a.super_id is null   and  a.order_no= #{orderNo,jdbcType=VARCHAR}
     <if test="splitStatus !=null">
@@ -1941,4 +1941,5 @@
   </select>
 
 
+
 </mapper>

+ 30 - 0
src/main/java/com/goafanti/order/bo/OrderListBo.java

@@ -76,6 +76,10 @@ public class OrderListBo {
 	private Integer orderType;
 	@Excel(name="会员" ,readConverterExp = "0=否,1=是")
 	private Integer projectType;
+	@Excel(name = "订单类型")
+	private String serviceType;
+	@Excel(name = "订单内容",width = 32)
+	private String serviceProject;
 
 	/** 合同首付金额 **/
 	private BigDecimal signFirstPayment;
@@ -144,6 +148,32 @@ public class OrderListBo {
 	private String other;
 
 
+	private String departmentId;
+
+	public String getServiceType() {
+		return serviceType;
+	}
+
+	public void setServiceType(String serviceType) {
+		this.serviceType = serviceType;
+	}
+
+	public String getServiceProject() {
+		return serviceProject;
+	}
+
+	public void setServiceProject(String serviceProject) {
+		this.serviceProject = serviceProject;
+	}
+
+	public String getDepartmentId() {
+		return departmentId;
+	}
+
+	public void setDepartmentId(String departmentId) {
+		this.departmentId = departmentId;
+	}
+
 	public BigDecimal getPatentCost() {
 		return patentCost;
 	}

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

@@ -132,4 +132,6 @@ public interface OrderProjectService {
 	 * @return
 	 */
 	Integer getOrderProcessStatus(String orderNo);
+
+    void updateMidServiceProject(String orderNo);
 }

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

@@ -772,7 +772,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		//清算状态 0-首付待付请,1-尾款待付清,2-已付请,3-部分退款,4-全部退款
 		o.setLiquidationStatus(OrderUtils.getLiquidationStatus(o));
 		tOrderNewMapper.updateByPrimaryKeySelective(o);
-		tOrderMidMapper.updateCountProjectAndType(o.getOrderNo());
+		orderProjectService.updateMidServiceProject(o.getOrderNo());
 		return o;
 	}
 

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

@@ -572,8 +572,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			tOrderMidMapper.insertSelective(tm);
 		}
 		//
-		tOrderMidMapper.updateCountProjectAndType(t.getOrderNo());
-
+		orderProjectService.updateMidServiceProject(t.getOrderNo());
 	}
 
 	/**

+ 34 - 0
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -117,6 +117,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private AsyncUtils	asyncUtils;
 	@Autowired
 	private TTaskMemberMapper tTaskMemberMapper;
+	@Autowired
+	private TOrderMidMapper	tOrderMidMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
 
@@ -305,6 +307,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 
 
+
 	private void insetLog(Integer taskId, String taskReceiverId) {
 		TTaskLog tl=new TTaskLog();
 		tl.setCreateTime(new Date());
@@ -515,6 +518,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			tOrderTaskMapper.updateByPrimaryKeySelective(t);
 			projectSplitPush(b.getTid(), b.getProjectStatus(),task2);
 			pushTaskLog(b.getTid(), b.getProjectStatus());
+			updateMidServiceProject(task2.getOrderNo());
 		}
 		return 1;
 	}
@@ -1392,4 +1396,34 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	}
 
 
+	@Override
+	public void updateMidServiceProject(String orderNo) {
+		List<TOrderTaskBo> taskBos = tOrderTaskMapper.selectOrderTaskAll(orderNo, null);
+		if (!taskBos.isEmpty()){
+			List<String > cp=new ArrayList<>();
+			List<String > cc=new ArrayList<>();
+			StringBuffer ps=new StringBuffer();
+			StringBuffer cs=new StringBuffer();
+			for (TOrderTaskBo taskBo : taskBos) {
+				if (!cp.contains(taskBo.getCommodityName())){
+					cp.add(taskBo.getCommodityName());
+					ps=ps.append(taskBo.getCommodityName());
+					String str= NewProjectStatus.getValueByCode(taskBo.getProjectStatus());
+					ps=ps.append("-").append(str).append(",");
+
+				}
+				if (!cc.contains(taskBo.getCname())){
+					cc.add(taskBo.getCname());
+					cs=cs.append(taskBo.getCname()).append(",");
+				}
+			}
+			TOrderMid tOrderMid = new TOrderMid();
+			tOrderMid.setOrderNo(orderNo);
+			if (ps.length()>1)tOrderMid.setServiceProject(ps.substring(0,ps.length()-1));
+			if (ps.length()>1)tOrderMid.setServiceType(cs.substring(0,cs.length()-1));
+			tOrderMidMapper.updateByOrderNo(tOrderMid);
+		}
+	}
+
+
 }