|
@@ -1,6 +1,12 @@
|
|
|
package com.dgtly.system.service.impl;
|
|
package com.dgtly.system.service.impl;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+import com.dgtly.system.domain.DeliverSignVO;
|
|
|
|
|
+import com.dgtly.system.domain.OrderSignVO;
|
|
|
|
|
+import com.dgtly.system.domain.TmsShipmentSignVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.dgtly.system.mapper.MetaHanaDeliverSignMapper;
|
|
import com.dgtly.system.mapper.MetaHanaDeliverSignMapper;
|
|
@@ -82,5 +88,150 @@ public class MetaHanaDeliverSignServiceImpl implements IMetaHanaDeliverSignServi
|
|
|
return metaHanaDeliverSignMapper.deleteMetaHanaDeliverSignById(deliverNumber);
|
|
return metaHanaDeliverSignMapper.deleteMetaHanaDeliverSignById(deliverNumber);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @description: 预处理电子单签收数据,交货单,订单,运单签收状态和最近一次签收时间
|
|
|
|
|
+ * @param: []
|
|
|
|
|
+ * @return: boolean
|
|
|
|
|
+ * @author: njs
|
|
|
|
|
+ * @date: 2025/6/5 9:53
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void pretreatmentHanaDeliverSign() {
|
|
|
|
|
+ List<String> orderList = metaHanaDeliverSignMapper.selectOrderNumberSign();
|
|
|
|
|
+ //先处理订单,(处理电子单签收里的订单)
|
|
|
|
|
+ if(orderList !=null && orderList.size()>0){
|
|
|
|
|
+ List<OrderSignVO> orderSignVOList = new ArrayList<>();
|
|
|
|
|
+ orderList.forEach(order->{
|
|
|
|
|
+ OrderSignVO vo = new OrderSignVO();
|
|
|
|
|
+ vo.setOrderNumber(order);
|
|
|
|
|
+ List<MetaHanaDeliverSign> hanaDeliverSignList = metaHanaDeliverSignMapper.selectDeliverSignListByOrderNumberAndOrderItem(order,null);
|
|
|
|
|
+ if(hanaDeliverSignList !=null && hanaDeliverSignList.size()>0){
|
|
|
|
|
+ List<String> signList = new ArrayList<>();
|
|
|
|
|
+ hanaDeliverSignList.forEach(sign->{
|
|
|
|
|
+ BigDecimal differenceQty = new BigDecimal(0);
|
|
|
|
|
+ //差值
|
|
|
|
|
+ if (org.apache.commons.lang.StringUtils.isNotBlank(sign.getDifferenceQty())) {
|
|
|
|
|
+ differenceQty = new BigDecimal(sign.getDifferenceQty());
|
|
|
|
|
+ differenceQty = differenceQty.setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ }
|
|
|
|
|
+ //判断是否待签收和异常签收标记
|
|
|
|
|
+ if(differenceQty.compareTo(new BigDecimal("0")) == 0 ) {
|
|
|
|
|
+ if(sign.getZdateDate() !=null && !("").equals(sign.getZdateDate()) && !sign.getZdateDate().equals("00000000")){
|
|
|
|
|
+ //正常签收
|
|
|
|
|
+ signList.add("1");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //未签收
|
|
|
|
|
+ signList.add("3");
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ if(("全部签收").equals(sign.getAbnormalStatus())){
|
|
|
|
|
+ //正常签收
|
|
|
|
|
+ signList.add("1");
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //异常签收 待签收
|
|
|
|
|
+ signList.add("0");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if(signList !=null && signList.size()>0){
|
|
|
|
|
+ if(signList.contains("0")){
|
|
|
|
|
+ //异常签收 待签收
|
|
|
|
|
+ vo.setSignType(0);
|
|
|
|
|
+ vo.setZdateDate(hanaDeliverSignList.get(0).getSignTime());
|
|
|
|
|
+ }else if(signList.contains("1") && !signList.contains("0")){
|
|
|
|
|
+ //正常签收
|
|
|
|
|
+ vo.setSignType(1);
|
|
|
|
|
+ vo.setZdateDate(hanaDeliverSignList.get(0).getSignTime());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //未签收
|
|
|
|
|
+ vo.setSignType(3);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ vo.setSignType(3);
|
|
|
|
|
+ }
|
|
|
|
|
+ orderSignVOList.add(vo);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if(orderSignVOList !=null && orderSignVOList.size()>0){
|
|
|
|
|
+ //清除表数据再批量新增
|
|
|
|
|
+ metaHanaDeliverSignMapper.truncateOrderSign();
|
|
|
|
|
+ metaHanaDeliverSignMapper.batchOrderSign(orderSignVOList);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //再处理运单,(处理tms运单表中的运单)
|
|
|
|
|
+ List<String> tmsShipMentList = metaHanaDeliverSignMapper.selectTmsShipmentNumberSign();
|
|
|
|
|
+ if(tmsShipMentList !=null && tmsShipMentList.size()>0){
|
|
|
|
|
+ List<TmsShipmentSignVO> tmsList = new ArrayList<>();
|
|
|
|
|
+ tmsShipMentList.forEach(tmsShipmentNumber->{
|
|
|
|
|
+ TmsShipmentSignVO signVO = new TmsShipmentSignVO();
|
|
|
|
|
+ signVO.setTmsShipmentNumber(tmsShipmentNumber);
|
|
|
|
|
+ //abnormalStatus 1未签收;2未开始补货;3部分签收;4全部签收
|
|
|
|
|
+ List<DeliverSignVO> deliverSignList = metaHanaDeliverSignMapper.selectDeliverSignByTmsShipmentNumber(tmsShipmentNumber);
|
|
|
|
|
+ if(deliverSignList !=null && deliverSignList.size()>0){
|
|
|
|
|
+ List<String> signList = new ArrayList<>();
|
|
|
|
|
+ deliverSignList.forEach(sign->{
|
|
|
|
|
+ //计算该运单下电子签收单状态和最近签收时间
|
|
|
|
|
+ BigDecimal differenceQty = new BigDecimal(0);
|
|
|
|
|
+ if (org.apache.commons.lang.StringUtils.isNotBlank(sign.getDifferenceQty())) {
|
|
|
|
|
+ differenceQty = new BigDecimal(sign.getDifferenceQty());
|
|
|
|
|
+ differenceQty = differenceQty.setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ }
|
|
|
|
|
+ //判断是否待签收和异常签收标记
|
|
|
|
|
+ if(differenceQty.compareTo(new BigDecimal("0")) == 0) {
|
|
|
|
|
+ //正常签收
|
|
|
|
|
+ //没有签收时间的则为未签收
|
|
|
|
|
+ if(sign.getZDate() !=null && !("").equals(sign.getZDate()) && !sign.getZDate().equals("00000000")){
|
|
|
|
|
+ sign.setSignType(1);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ sign.setSignType(3);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ if(("4").equals(sign.getAbnormalStatus())){
|
|
|
|
|
+ //正常签收
|
|
|
|
|
+ sign.setSignType(1);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //异常签收 待签收
|
|
|
|
|
+ sign.setSignType(0);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ signList.add(sign.getSignType().toString());
|
|
|
|
|
+
|
|
|
|
|
+ if(!sign.getSignType().equals("3")){
|
|
|
|
|
+ //最近一次签收日期
|
|
|
|
|
+ if(sign.getZdateDate() !=null ){
|
|
|
|
|
+ signVO.setZdateDate(sign.getZdateDate());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+ if(signList.contains("0")){
|
|
|
|
|
+ signVO.setSignType(0);
|
|
|
|
|
+ }else if(!signList.contains("0") && signList.contains("1")){
|
|
|
|
|
+ signVO.setSignType(1);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ signVO.setSignType(3);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //未签收
|
|
|
|
|
+ signVO.setSignType(3);
|
|
|
|
|
+ }
|
|
|
|
|
+ tmsList.add(signVO);
|
|
|
|
|
+ });
|
|
|
|
|
+ if(tmsList !=null && tmsList.size()>0){
|
|
|
|
|
+ //清楚表数据再批量新增
|
|
|
|
|
+ metaHanaDeliverSignMapper.truncateTmsShipmentSign();
|
|
|
|
|
+ metaHanaDeliverSignMapper.batchTmsShipmentSign(tmsList);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
}
|
|
}
|