Преглед изворни кода

变更开发

Signed-off-by: anderx <312518615@qq.com>
anderx пре 6 година
родитељ
комит
5e5334a8db

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

@@ -108,6 +108,5 @@ public interface TOrderTaskMapper {
 
 
 	List<String> listNameByDepAndName(@Param("orderNo")String orderNo, @Param("type")Integer type);
 	List<String> listNameByDepAndName(@Param("orderNo")String orderNo, @Param("type")Integer type);
 
 
-	
 
 
 }
 }

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

@@ -758,6 +758,9 @@ select
 	<if test="complete ==3">
 	<if test="complete ==3">
 	 and   a.status = 2
 	 and   a.status = 2
 	</if>
 	</if>
+	<if test="complete ==4">
+	 and   a.status = 4
+	</if>
 	order by a.create_time desc
 	order by a.create_time desc
 	<if test="page_sql != null">
 	<if test="page_sql != null">
 			${page_sql}
 			${page_sql}
@@ -843,9 +846,12 @@ select
 	<if test="complete ==2 and processState == 8">
 	<if test="complete ==2 and processState == 8">
 	 and a.process_state = 8  and  (a.status = 4 or a.status = 2)
 	 and a.process_state = 8  and  (a.status = 4 or a.status = 2)
 	</if>
 	</if>
-		<if test="complete ==3">
+	<if test="complete ==3">
 	 and   a.status = 2
 	 and   a.status = 2
 	</if>
 	</if>
+	<if test="complete ==4">
+	 and   a.status = 4
+	</if>
 	</select>
 	</select>
 	<update id="addRefundInvoice" >
 	<update id="addRefundInvoice" >
 	update  new_order_change
 	update  new_order_change

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

@@ -461,9 +461,11 @@
   </insert>
   </insert>
   
   
   <select id="selectByCid" resultType="com.goafanti.order.bo.TChanggeDunOut">
   <select id="selectByCid" resultType="com.goafanti.order.bo.TChanggeDunOut">
-      select a.id,a.order_no orderNo, a.tid, a.project_type projectType, a.dun_type dunType, a.wait_day waitDay, b.set_up_amount setUpAmount,
-  a.effective_count effectiveCount, a.aid, a.create_time createTime ,b.commodity_name commodityName,a.money,a.status,
-  a.appropriation_ratio appropriationRatio from t_changge_dun a left join t_order_task b on a.tid=b.id 
-    where cid= #{id}
+  select a.id,a.order_no orderNo, a.tid, a.project_type projectType, a.dun_type dunType, a.wait_day waitDay, 
+  	  b.set_up_amount setUpAmount, a.effective_count effectiveCount, a.aid, a.create_time createTime ,
+  	  ifnull(c.commodity_name,d.commodity_name) commodityName,a.money,a.status, a.appropriation_ratio appropriationRatio
+  	  from t_changge_dun a left join t_order_task b on a.tid=b.id left join t_changge_task c on a.tid=c.tid 
+  	  left join t_changge_task d on a.tid=d.id
+    	where a.cid= #{id}
   </select>
   </select>
 </mapper>
 </mapper>

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

@@ -246,12 +246,15 @@
       #{consultantId,jdbcType=VARCHAR}, #{managerId,jdbcType=VARCHAR}, #{attachmentUrl,jdbcType=LONGVARCHAR}
       #{consultantId,jdbcType=VARCHAR}, #{managerId,jdbcType=VARCHAR}, #{attachmentUrl,jdbcType=LONGVARCHAR}
       )
       )
   </insert>
   </insert>
-  <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderTask">
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderTask" >
     <!--
     <!--
       WARNING - @mbg.generated
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
       This element is automatically generated by MyBatis Generator, do not modify.
       This element was generated on Wed Nov 20 10:18:39 CST 2019.
       This element was generated on Wed Nov 20 10:18:39 CST 2019.
     -->
     -->
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+      select LAST_INSERT_ID() as id
+      </selectKey>
     insert into t_order_task
     insert into t_order_task
     <trim prefix="(" suffix=")" suffixOverrides=",">
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
       <if test="id != null">

+ 45 - 0
src/main/java/com/goafanti/order/bo/TChanggeDunOut.java

@@ -1,11 +1,18 @@
 package com.goafanti.order.bo;
 package com.goafanti.order.bo;
 
 
+import java.math.BigDecimal;
+import java.util.Calendar;
+
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.model.TChanggeDun;
 import com.goafanti.common.model.TChanggeDun;
+import com.goafanti.common.utils.DateUtils;
 import com.goafanti.order.enums.NewOrderDunType;
 import com.goafanti.order.enums.NewOrderDunType;
 
 
 public class TChanggeDunOut extends TChanggeDun{
 public class TChanggeDunOut extends TChanggeDun{
 	private String dunTypeName;
 	private String dunTypeName;
 	private String commodityName;
 	private String commodityName;
+	private String startDate;
+	private BigDecimal setUpAmount;
 	public String getDunTypeName() {
 	public String getDunTypeName() {
 		if(super.getDunType()!=null&&super.getProjectType()!=null) {
 		if(super.getDunType()!=null&&super.getProjectType()!=null) {
 			return NewOrderDunType.getValueByCode(Integer.valueOf(""+super.getProjectType()+super.getDunType()));
 			return NewOrderDunType.getValueByCode(Integer.valueOf(""+super.getProjectType()+super.getDunType()));
@@ -18,4 +25,42 @@ public class TChanggeDunOut extends TChanggeDun{
 	public void setCommodityName(String commodityName) {
 	public void setCommodityName(String commodityName) {
 		this.commodityName = commodityName;
 		this.commodityName = commodityName;
 	}
 	}
+	public String getStartDate() {
+		//会员显示到期时间
+		if(super.getCreateTime()!=null&&super.getEffectiveCount()!=null) {
+			Calendar calendar=Calendar.getInstance();   
+	  		calendar.setTime(super.getCreateTime());
+	  		calendar.add(Calendar.DATE, super.getEffectiveCount()*180);
+	  		return DateUtils.formatDate(calendar.getTime(), AFTConstants.YYYYMMDD);
+		}
+		//财税显示催款时间 大于9则年份+2,小于10年份+1
+		if (super.getDunType()==2&&super.getProjectType()==5) {
+			Calendar calendar=Calendar.getInstance();   
+	  		calendar.setTime(super.getCreateTime());
+	  		int year = calendar.get(Calendar.YEAR);  
+		        //获取月份,0表示1月份
+		        int month = calendar.get(Calendar.MONTH) + 1;
+		        if(month<10)year=year+1;
+		        if(month>9)year=year+2;
+		        calendar.set(year, 5, 1);
+		        return DateUtils.formatDate(calendar.getTime(), AFTConstants.YYYYMMDD);
+		}
+		return startDate;
+	}
+	public BigDecimal getMoney() {
+		if(getDunType()!=null&&getProjectType()!=null){
+			if(Integer.valueOf(""+getProjectType()+getDunType())==33&&
+					super.getMoney()==null&&
+					super.getAppropriationRatio()!=null&&getSetUpAmount()!=null) {
+				return super.getAppropriationRatio().multiply(getSetUpAmount());
+			}
+		}
+		return super.getMoney();
+	}
+	public BigDecimal getSetUpAmount() {
+		return setUpAmount;
+	}
+	public void setSetUpAmount(BigDecimal setUpAmount) {
+		this.setUpAmount = setUpAmount;
+	}
 }
 }

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

@@ -3,6 +3,7 @@ package com.goafanti.order.service.impl;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.sql.ResultSet;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
@@ -12,6 +13,7 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.UUID;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import javax.swing.text.html.parser.Entity;
 
 
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFRow;
@@ -47,8 +49,10 @@ import com.goafanti.common.model.TChanggeDun;
 import com.goafanti.common.model.TChanggeTask;
 import com.goafanti.common.model.TChanggeTask;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.NewOrderChange;
 import com.goafanti.common.model.NewOrderChange;
+import com.goafanti.common.model.NewOrderDun;
 import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.BaseMybatisDao;
@@ -381,7 +385,10 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		
 		
 	}
 	}
 	
 	
-	private void changgeAdopt(NewOrderChangeBo nb) {
+	/**
+	 * 变更完成复制出原订单镜像
+	 */
+	private void changeAdopt(NewOrderChangeBo nb) {
 		TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
 		TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
 		List<TOrderDun> td1=tOrderDunMapper.selectByOrderNo(nb.getOrderNo());
 		List<TOrderDun> td1=tOrderDunMapper.selectByOrderNo(nb.getOrderNo());
 		List<OutNewOrderDunBo> td2=newOrderDunMapper.selectListNewOrderDun(nb.getOrderNo(), null, null);
 		List<OutNewOrderDunBo> td2=newOrderDunMapper.selectListNewOrderDun(nb.getOrderNo(), null, null);
@@ -414,22 +421,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		nb.setStatus(4);
 		nb.setStatus(4);
 		//将订单恢复正常
 		//将订单恢复正常
 		TOrderNew orderNew =new TOrderNew();
 		TOrderNew orderNew =new TOrderNew();
-		TOrderNew additionalOrder =new TOrderNew();
-		String additionalOrderNo;
 		orderNew.setOrderNo(nb.getOrderNo());
 		orderNew.setOrderNo(nb.getOrderNo());
 		orderNew.setDeleteSign(3);//设置为变更中
 		orderNew.setDeleteSign(3);//设置为变更中
 		orderNew.setPrimaryOrder(newOrderNo);
 		orderNew.setPrimaryOrder(newOrderNo);
-		if (nb.getType()==4||nb.getType()==5) {//重报或者赠送
-			additionalOrderNo=idGenerator.generateId().toString();
-			orderNew.setAdditionalOrder(additionalOrderNo);
-			additionalOrder.setOrderNo(additionalOrderNo);
-			additionalOrder.setCreater(TokenManager.getAdminId());
-			additionalOrder.setContractNo(t1.getContractNo());
-			additionalOrder.setSalesmanId(t1.getSalesmanId());
-			additionalOrder.setOrderType(t1.getOrderType());
-			additionalOrder.setBuyerId(t1.getBuyerId());	
-			tOrderNewMapper.insertSelective(additionalOrder);
-		}
 		tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
 		tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
 		
 		
 	}
 	}
@@ -517,14 +511,101 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	}
 	}
 	@Override
 	@Override
 	public int pushCompleteOrderChange(NewOrderChangeBo nb) {
 	public int pushCompleteOrderChange(NewOrderChangeBo nb) {
-		changgeAdopt(nb);
+		changeAdopt(nb);
+		TOrderNew o=pushChange(nb);
 		List<String> alist = new ArrayList<>();
 		List<String> alist = new ArrayList<>();
-		TOrderNew o=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
 		alist.add(o.getSalesmanId());
 		alist.add(o.getSalesmanId());
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
 		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), o.getOrderNo(), TokenManager.getAdminId(),0);
 		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), o.getOrderNo(), TokenManager.getAdminId(),0);
 		return 1;
 		return 1;
 	}
 	}
+	/**
+	 * 修改订单数据
+	 * @param nb
+	 */
+	private TOrderNew pushChange(NewOrderChangeBo nb) {
+		TOrderNew o=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
+		NewOrderChangeBo nob=newOrderChangeMapper.selectById(nb.getId());
+//		变更类型 0退单退款 1项目及金额变更 2仅项目变更 3仅金额变更 4重报 5赠送
+		//退单退款不需改变内容
+		if (nob.getType()==OrderChangeType.XMJJEBG.getCode()) {
+			o.setTotalAmount(nob.getTotalAmount());
+			//处理项目及催款
+			pushTaskAndDun(nob.getId(),nob.getOrderNo());
+		}else if (nob.getType()==OrderChangeType.JXMBG.getCode()) {
+			pushTaskAndDun(nob.getId(),nob.getOrderNo());
+		}else if (nob.getType()==OrderChangeType.JJEBG.getCode()) {
+			o.setTotalAmount(nob.getTotalAmount());
+		}else if (nob.getType()==OrderChangeType.CB.getCode()||nob.getType()==OrderChangeType.ZC.getCode()) {
+			pushTaskAndDun(nob.getId(),nob.getOrderNo());
+		}
+		tOrderNewMapper.updateByPrimaryKeySelective(o);
+		return o; 
+	}
+
+	private void pushTaskAndDun(Integer id,String orderNo) {
+		List<TOrderTaskBo> listot=tOrderTaskMapper.selectOrderTask(orderNo);
+		List<TChanggeTaskOut> listct=tChanggeTaskMapper.selectByCid(id);
+		for (TOrderTaskBo ot : listot) {
+			boolean flag=true;
+			for (TChanggeTaskOut ct : listct) {
+				if (ot.getId()==ct.getTid()) {
+					flag=false;
+				}
+				if (!flag) continue;
+			}
+			if(flag)tOrderTaskMapper.deleteByPrimaryKey(ot.getId());
+		}
+		for (TChanggeTaskOut cd : listct) {
+			if (cd.getTid()==null) {
+			TOrderTask ot=new TOrderTask();
+			ot.setOrderNo(cd.getOrderNo());
+			ot.setCommodityId(cd.getCommodityId());
+			ot.setOrderNo(cd.getOrderNo());
+			ot.setCommodityName(cd.getCommodityName());
+			ot.setCommodityPrice(cd.getCommodityPrice());
+			ot.setCommodityQuantity(cd.getCommodityQuantity());
+			ot.setTaskComment(cd.getTaskComment());
+			ot.setMain(cd.getMain());
+			ot.setTaskStatus(0);
+			tOrderTaskMapper.insertSelective(ot);
+			cd.setTid(ot.getId());
+			tChanggeTaskMapper.updateByPrimaryKeySelective(cd);
+			}
+		}
+		List<TChanggeDunOut> listcd=tChanggeDunMapper.selectByCid(id);new ArrayList<>();
+		List<OutNewOrderDunBo> listDun=newOrderDunMapper.selectListNewOrderDun(orderNo,null,null);
+		for (OutNewOrderDunBo nb2 : listDun) {
+			boolean flag=true;
+			for (TChanggeDunOut cd2 : listcd) {
+				if (nb2.getId()==cd2.getDid()) {
+					flag=false;
+				}
+				if (!flag) continue;
+			}
+			if(flag)newOrderDunMapper.deleteByPrimaryKey(nb2.getId());
+		}
+		for (TChanggeDunOut cd : listcd) {
+			if (cd.getDid()==null) {
+			NewOrderDun nd=new NewOrderDun();
+			nd.setOrderNo(cd.getOrderNo());
+			nd.setAid(cd.getAid());
+			nd.setAppropriationRatio(cd.getAppropriationRatio());
+			nd.setTid(cd.getTid());
+			nd.setProjectType(cd.getProjectType());
+			nd.setDunType(cd.getDunType());
+			nd.setMoney(cd.getMoney());
+			nd.setWaitDay(cd.getWaitDay());
+			nd.setStartTime(cd.getStartTime());
+			nd.setEffectiveCount(cd.getEffectiveCount());
+			newOrderDunMapper.insertSelective(nd);
+			}
+		}
+		
+
+		
+	}
+
 	@Override
 	@Override
 	public Map<String, Object> listOrderInvoiceAndBill(String orderNo) {
 	public Map<String, Object> listOrderInvoiceAndBill(String orderNo) {
 		Map<String, Object> map=new HashMap<>();
 		Map<String, Object> map=new HashMap<>();