|
|
@@ -3,6 +3,7 @@ package com.goafanti.order.service.impl;
|
|
|
import java.io.IOException;
|
|
|
import java.io.OutputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.sql.ResultSet;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
@@ -12,6 +13,7 @@ import java.util.Map;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
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.XSSFRow;
|
|
|
@@ -47,8 +49,10 @@ import com.goafanti.common.model.TChanggeDun;
|
|
|
import com.goafanti.common.model.TChanggeTask;
|
|
|
import com.goafanti.common.model.TOrderDun;
|
|
|
import com.goafanti.common.model.TOrderNew;
|
|
|
+import com.goafanti.common.model.TOrderTask;
|
|
|
import com.goafanti.common.model.Admin;
|
|
|
import com.goafanti.common.model.NewOrderChange;
|
|
|
+import com.goafanti.common.model.NewOrderDun;
|
|
|
import com.goafanti.common.utils.ExportExcelUtil;
|
|
|
import com.goafanti.common.utils.StringUtils;
|
|
|
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());
|
|
|
List<TOrderDun> td1=tOrderDunMapper.selectByOrderNo(nb.getOrderNo());
|
|
|
List<OutNewOrderDunBo> td2=newOrderDunMapper.selectListNewOrderDun(nb.getOrderNo(), null, null);
|
|
|
@@ -414,22 +421,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
nb.setStatus(4);
|
|
|
//将订单恢复正常
|
|
|
TOrderNew orderNew =new TOrderNew();
|
|
|
- TOrderNew additionalOrder =new TOrderNew();
|
|
|
- String additionalOrderNo;
|
|
|
orderNew.setOrderNo(nb.getOrderNo());
|
|
|
orderNew.setDeleteSign(3);//设置为变更中
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
@@ -517,14 +511,101 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
|
|
|
}
|
|
|
@Override
|
|
|
public int pushCompleteOrderChange(NewOrderChangeBo nb) {
|
|
|
- changgeAdopt(nb);
|
|
|
+ changeAdopt(nb);
|
|
|
+ TOrderNew o=pushChange(nb);
|
|
|
List<String> alist = new ArrayList<>();
|
|
|
- TOrderNew o=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
|
|
|
alist.add(o.getSalesmanId());
|
|
|
newOrderChangeMapper.updateByPrimaryKeySelective(nb);
|
|
|
orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), o.getOrderNo(), TokenManager.getAdminId(),0);
|
|
|
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
|
|
|
public Map<String, Object> listOrderInvoiceAndBill(String orderNo) {
|
|
|
Map<String, Object> map=new HashMap<>();
|