| 
					
				 | 
			
			
				@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ruoyi.approvalFlow.domain.AuditItems; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ruoyi.approvalFlow.mapper.AuditItemsMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ruoyi.approvalFlow.mapper.AuditItemsUsersMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ruoyi.basicData.domain.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ruoyi.basicData.mapper.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,6 +76,7 @@ import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.text.SimpleDateFormat; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,6 +202,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TCntrtrackingMapper tCntrtrackingMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TCtnpriceItemsMapper tCtnpriceItemsMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private AuditItemsUsersMapper auditItemsUsersMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final Logger log = LoggerFactory.getLogger(AddressUtils.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2701,6 +2705,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (StringUtils.isNotNull(mblno) && !mblno.getfId().equals(warehouseBills.getfId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return AjaxResult.error("提单号已存在,请重新提交"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AjaxResult ajaxResult = this.changeFees(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String codeMessage = ajaxResult.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ("500".equals(codeMessage)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ajaxResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (tWarehouseBills.getfBillstatus() != 11L) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return AjaxResult.error("订单未审核完成,暂不支持维护提单号"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -7168,6 +7178,104 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return AjaxResult.success(warehouseBillsVOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult cancellationFees(String tWarehousebills, String tWarehousebillsCntr, String tWarehousebillsCntritems, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr, LoginUser loginUser, String billsType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        long actId = 460; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long billStatus = 2L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (tWarehouseBills == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.error("找不到订单信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AjaxResult ajaxResult = this.changeFees(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String code = ajaxResult.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ("500".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ajaxResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        warehouseBills.setfTimes(tWarehouseBills.getfTimes() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer integer = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put("tWarehouseBills", tWarehouseBills); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.put("tWarehousebillsCntritemsList", tWarehousebillsCntritemsList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               if (wbCr.getfId() == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setfPid(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setfDc("C"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setfBilltype(billsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setfBillstatus(billStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setSrcBillNo(tWarehouseBills.getfBillno()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setCreateBy(loginUser.getUser().getUserName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   //wbCr.setfChargedate(warehouseBills.getfChargedate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   //wbCr.setfBillingDeadline(warehouseBills.getfChargedate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       wbCr.setfBsdate(warehouseBills.getfBsdate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setfBillstatus(billStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setUpdateBy(loginUser.getUser().getUserName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   wbCr.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   tWarehousebillsfeesMapper.updateTWarehousebillsfees(wbCr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.put("warehousebillsfeesCrList", warehousebillsfeesCrList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (wbDr.getfId() == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setfPid(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setfDc("D"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setfBillstatus(billStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setfBilltype(billsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setSrcBillNo(tWarehouseBills.getfBillno()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setCreateBy(loginUser.getUser().getUserName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //wbDr.setfChargedate(warehouseBills.getfChargedate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //wbDr.setfBillingDeadline(warehouseBills.getfChargedate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        wbDr.setfBsdate(warehouseBills.getfBsdate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setfBillstatus(billStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    wbDr.setUpdateBy(loginUser.getUser().getUserName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    tWarehousebillsfeesMapper.updateTWarehousebillsfees(wbDr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.put("warehousebillsfeesDrList", warehousebillsfeesDrList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotEmpty(tWarehousebillsCntr) && !"[]".equals(tWarehousebillsCntr)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<TWarehousebillsCntr> tWarehousebillsCntrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.put("tWarehousebillsCntrList", tWarehousebillsCntrList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //删除审批流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //1.查找审批流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AuditItems auditItems = new AuditItems(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auditItems.setActId(actId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auditItems.setBillId(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auditItems.setId(warehouseBills.getfId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auditItems.setFidStatus("f_billstatus"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //删除审批流信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auditItemsMapper.deletePurchaseApproval(auditItems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success("success", map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 如果是入库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -7357,5 +7465,28 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 能否修改费用信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param id  订单主表id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private AjaxResult changeFees(Long id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<TWarehousebillsfees> warehousebillsfees = tWarehousebillsfeesMapper.selectFeesByPId(id, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isNotEmpty(warehousebillsfees)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (TWarehousebillsfees warehousebillsfee : warehousebillsfees) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (warehousebillsfee.getfAccamount() != null && warehousebillsfee.getfAccamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return AjaxResult.error("费用已对账"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (warehousebillsfee.getfStlamount() != null && warehousebillsfee.getfStlamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return AjaxResult.error("费用已收费付费"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (warehousebillsfee.getfInvamount() != null && warehousebillsfee.getfInvamount().compareTo(new BigDecimal(BigInteger.ZERO)) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return AjaxResult.error("费用已开票"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |