Forráskód Böngészése

凯和增加撤销费用请核

lazhaoqian 3 éve
szülő
commit
14bfcda450

+ 25 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shipping/controller/KHTWarehousebillsController.java

@@ -429,4 +429,29 @@ public class KHTWarehousebillsController extends BaseController
     public AjaxResult cargoPlanning(@RequestBody TWarehouseBills tWarehousebills){
         return tWarehousebillsService.batchModifyingVesselVoyage(tWarehousebills.getOrderId(),null,null,1L);
     }
+    /**
+     * 撤销费用请核
+     * @param tWarehousebills
+     * @param tWarehousebillsCntritems
+     * @param tWarehousebillsfeesCr
+     * @param tWarehousebillsfeesDr
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('warehouse:warehousebills:ruoYiSubmitMessage')")
+    //@Log(title = "凯和若依订单提交", businessType = BusinessType.DELETE)
+    @PostMapping("/cancellationFees")
+    public AjaxResult cancellationFees(@RequestParam(value = "tWarehousebills") String tWarehousebills,
+                                         @RequestParam(value = "tWarehousebillsCntr",required = false) String tWarehousebillsCntr,
+                                         @RequestParam(value = "tWarehousebillsCntritems",required = false) String tWarehousebillsCntritems,
+                                         @RequestParam("tWarehousebillsfeesCr") String tWarehousebillsfeesCr,
+                                         @RequestParam("tWarehousebillsfeesDr") String tWarehousebillsfeesDr){
+        if (StringUtils.isEmpty(tWarehousebills)){
+            return AjaxResult.error("未找到订单主表信息,请确认");
+        }
+        String billsType = "KHDD";
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return tWarehousebillsService.cancellationFees(tWarehousebills,tWarehousebillsCntr,tWarehousebillsCntritems,
+                tWarehousebillsfeesCr,tWarehousebillsfeesDr,loginUser,billsType);
+
+    }
 }

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java

@@ -81,11 +81,11 @@ public class SysLoginService {
             LoginUser user = redisCache.getCacheObject(key);
             if (StringUtils.isNotEmpty(username) && StringUtils.isNotNull(user.getUser()))
             {
-                /*if (StringUtils.equals(username, user.getUsername()))
+                if (StringUtils.equals(username, user.getUsername()))
                 {
                     // 若发现有其他用户登录,顶替掉其他用户
                     redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + user.getToken());
-                }*/
+                }
             }
         }
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));

+ 12 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -725,4 +725,16 @@ public interface ITWarehouseBillsService {
      * @return 库存总帐明细
      */
     AjaxResult selectWhgenlegDetail(Long id);
+    /**
+     * 撤销费用请核
+     *
+     * @param tWarehousebills
+     * @param tWarehousebillsCntritems
+     * @param tWarehousebillsfeesCr
+     * @param tWarehousebillsfeesDr
+     * @return
+     */
+    public AjaxResult cancellationFees(String tWarehousebills, String tWarehousebillsCntr, String tWarehousebillsCntritems,
+                                         String tWarehousebillsfeesCr, String tWarehousebillsfeesDr, LoginUser loginUser,
+                                         String billsType);
 }

+ 131 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -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);
 
@@ -2693,6 +2697,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("订单未审核完成,暂不支持维护提单号");
@@ -7152,6 +7162,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);
+    }
+
     /**
      * 如果是入库
      *
@@ -7341,5 +7449,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();
+    }
+
 
 }