|  | @@ -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();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 |