Переглянути джерело

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

zhoux 1 рік тому
батько
коміт
4f136f0366

+ 1 - 1
src/main/java/com/dk/mdm/mapper/common/CommonMapper.xml

@@ -1073,7 +1073,7 @@
             AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
         </if>
         <if test="whName != null">
-            AND tmgs.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
+            AND tmw.wh_name LIKE concat('%',my_ex.likequery(#{whName}),'%')
         </if>
         <if test="whId != null">
             AND tpi.wh_id = #{whId} ::uuid

+ 3 - 0
src/main/java/com/dk/mdm/model/vo/ivt/InOutRecordVO.java

@@ -219,6 +219,9 @@ public class InOutRecordVO  {
     private Integer itemIndex;
 
 
+    @ApiModelProperty(value = "存货批次明细ID")
+    private String batchId;
+
 
 
 

+ 27 - 16
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -574,11 +574,11 @@ public class InventoryService extends BaseService<Inventory> {
                     this.insertInboundRecord(inOutRecordVO);
                     //endregion
 
-                    //region 采购退货 出库成本 正数
-                    if (Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
-                        this.insertOutboundItemCost(inOutRecordVO);
-                    }
-                    //endregion
+//                    //region 采购退货 出库成本 正数
+//                    if (Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+//                        this.insertOutboundItemCost(inOutRecordVO);
+//                    }
+//                    //endregion
                 }
                 //endregion
             }
@@ -630,11 +630,10 @@ public class InventoryService extends BaseService<Inventory> {
                     if (inOutRecordVO.getSOutItemId() != null) {
                         List<OutboundItemCostResponse> outboundItemCostResponses = outboundItemCostMapper.selectByCond(new OutboundItemCostQuery().setOutItemId(inOutRecordVO.getSOutItemId()));
                         if (outboundItemCostResponses.size() > 0) {
-                            //出库单价
+                            //出库单价  反写出库单成本单价、成本金额
                             inOutRecordVO.setPriceInto(outboundItemCostResponses.get(0).getCostPrice());
                             //金额
                             inOutRecordVO.setIntoAmt(outboundItemCostResponses.get(0).getCostPrice().multiply(inOutRecordVO.getIntoQty()).abs());
-                            //反写出库单成本单价、成本金额
 
                         } else {
                             //当前销售退货单无法获取源出库单数据
@@ -664,12 +663,12 @@ public class InventoryService extends BaseService<Inventory> {
                     this.insertInboundRecord(inOutRecordVO);
                     //endregion
 
-                    //region  出库成本
-                    //除了销售退货出库  其他类型出库要新建出库成本
-                    if (!Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
-                        this.insertOutboundItemCost(inOutRecordVO);
-                    }
-                    //endregion
+//                    //region 销售退货 其他类型出库
+//                    if (!Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+//                        this.insertOutboundItemCost(inOutRecordVO);
+//                    }
+//                    //endregion
+
                 }
                 //endregion
 
@@ -983,8 +982,9 @@ public class InventoryService extends BaseService<Inventory> {
                 outboundItemCost.setCostAmt(inOutRecordVO.getIntoAmt());
             }
         }
-        Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OUTBOUNDCOST.getName(), false);
-        outboundItemCost.setBatchId(codeMap.get("outId").toString());
+        /*Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.OUTBOUNDCOST.getName(), false);
+        outboundItemCost.setBatchId(codeMap.get("outId").toString());*/
+        outboundItemCost.setBatchId(inOutRecordVO.getBatchId());
         //新建
         outboundItemCostMapper.insert(outboundItemCost);
     }
@@ -1032,7 +1032,7 @@ public class InventoryService extends BaseService<Inventory> {
                         //主键赋值
                         inventoryBatchVO.setBatchId(inventoryBatchResponse.getBatchId());
                         //库存数量
-                        inventoryBatchVO.setInvQty(inOutRecordVO.getIntoQty());
+                        inventoryBatchVO.setInvQty(qty.abs());
                         //存货资产
                         inventoryBatchVO.setCostAmt(inventoryBatchVO.getInvQty().multiply(inventoryBatchResponse.getCostPrice()));
                         //清零标识
@@ -1068,6 +1068,16 @@ public class InventoryService extends BaseService<Inventory> {
                         inOutRecordVO.setIntoAmt(inOutRecordVO.getIntoQty().multiply(inventoryBatchResponse.getCostPrice()));
                     }
                 }
+                //todo  2024年5月20日15:46:01  库存批次有几条出库成本就有几条
+                //region  出库成本
+                //除了销售退货出库  其他类型出库要新建出库成本  采购退货 出库成本 正数
+                if (!Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
+                        Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+                    //存货批次明细ID
+                    inOutRecordVO.setBatchId(inventoryBatchResponse.getBatchId());
+                    this.insertOutboundItemCost(inOutRecordVO);
+                }
+                //endregion
             }
         } else {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.CAN_OUTBOUND_QUANTITY_INSUFFICIENT.getMessage());
@@ -1420,6 +1430,7 @@ public class InventoryService extends BaseService<Inventory> {
 
                 //新建存货流水 一正一负
                 this.insertInboundRecord(inOutRecordVO);
+
                 //新建出库成本
                 this.insertOutboundItemCost(inOutRecordVO);
             }

+ 73 - 39
src/main/java/com/dk/mdm/service/mst/StaffService.java

@@ -39,6 +39,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author : 姜永辉
@@ -181,15 +182,27 @@ public class StaffService extends BaseService<Staff> {
                         ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
             } else {
                 Map<String, Object> mp = (Map<String, Object>) resultMaxnum.getData();
-                int intMaxnum = Integer.parseInt(mp.get("maxStaffNum") + "");
+                int intWebMaxnum = Integer.parseInt(mp.get("web_max_num") + "");
+                int intWxMaxnum = Integer.parseInt(mp.get("wx_max_num") + "");
                 staffQuery = new StaffQuery();
                 staffQuery.setFlgCanLogin(true);
                 staffQuery.setCpId(cpId);
                 List<StaffResponse> staffResponsesFlgCanLogin = staffMapper.selectByCond(staffQuery);
-                if (staffResponsesFlgCanLogin != null && staffResponsesFlgCanLogin.size() > 0 && intMaxnum < staffResponsesFlgCanLogin.size() + 1) {
-                    // 无用户
-                    throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_STAFF_ERROR.getCode(),
-                            ErrorCodeEnum.USER_MAX_STAFF_ERROR.getMessage());
+                if (staffResponsesFlgCanLogin != null && staffResponsesFlgCanLogin.size() > 0 ) {
+                    List<StaffResponse> collectPc = staffResponsesFlgCanLogin.stream().filter(it -> it.getLoginType() == 1 || it.getLoginType() == 3).collect(Collectors.toList());
+                    List<StaffResponse> collectWx = staffResponsesFlgCanLogin.stream().filter(it -> it.getLoginType() == 2 || it.getLoginType() == 3).collect(Collectors.toList());
+                    if ((staffVO.getLoginType() == 1 || staffVO.getLoginType() == 3 ) &&
+                        collectPc != null && collectPc.size() > 0 && intWebMaxnum < collectPc.size() + 1) {
+                        // 无用户
+                        throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_PC_STAFF_ERROR.getCode(),
+                                ErrorCodeEnum.USER_MAX_PC_STAFF_ERROR.getMessage());
+                    }
+                    if ((staffVO.getLoginType() == 2 || staffVO.getLoginType() == 3 ) &&
+                            collectWx != null && collectWx.size() > 0 && intWxMaxnum < collectWx.size() + 1) {
+                        // 无用户
+                        throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_WX_STAFF_ERROR.getCode(),
+                                ErrorCodeEnum.USER_MAX_WX_STAFF_ERROR.getMessage());
+                    }
                 }
             }
         }
@@ -527,43 +540,64 @@ public class StaffService extends BaseService<Staff> {
                 throw new BaseBusinessException(ErrorCodeEnum.USER_REGISTER_ERROR.getCode(),
                         ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
             } else {
-                Map<String, Object> mp = (Map<String, Object>) resultMaxnum.getData();
-                int intMaxnum = Integer.parseInt(mp.get("maxStaffNum") + "");
-                StaffQuery staffQuery = new StaffQuery();
-                staffQuery.setFlgCanLogin(true);
-                staffQuery.setCpId(cpId);
-                List<StaffResponse> staffResponsesFlgCanLogin = staffMapper.selectByCond(staffQuery);
-                if (staffResponsesFlgCanLogin != null && staffResponsesFlgCanLogin.size() > 0 && intMaxnum < staffResponsesFlgCanLogin.size()) {
-                    // 无用户
-                    throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_STAFF_ERROR.getCode(),
-                            ErrorCodeEnum.USER_MAX_STAFF_ERROR.getMessage());
-                }
-            }
-            if (staffResponseOld.getFlgCanLogin() != staffVO.getFlgCanLogin()) {
-                // 增加一个可以cur_staff_num
-                Map<String, Object> m = new HashMap<>();
-                m.put("curStaffNum", 1);
-                m.put("cpId", cpId);
-                ResponseResultVO<Boolean> booleanResponseResultVO = companyFeign.updateCompanyCurStaffNum(m);
-                if (booleanResponseResultVO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
-                    // 无用户
-                    throw new BaseBusinessException(ErrorCodeEnum.USER_REGISTER_ERROR.getCode(),
-                            ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
+                if (staffResponseOld.getFlgCanLogin() != staffVO.getFlgCanLogin()) {
+                    Map<String, Object> mp = (Map<String, Object>) resultMaxnum.getData();
+                    int intWebMaxnum = Integer.parseInt(mp.get("web_max_num") + "");
+                    int intWxMaxnum = Integer.parseInt(mp.get("wx_max_num") + "");
+                    StaffQuery staffQuery = new StaffQuery();
+                    staffQuery.setFlgCanLogin(true);
+                    staffQuery.setCpId(cpId);
+                    List<StaffResponse> staffResponsesFlgCanLogin = staffMapper.selectByCond(staffQuery);
+                    if (staffResponsesFlgCanLogin != null && staffResponsesFlgCanLogin.size() > 0 ) {
+                        List<StaffResponse> collectPc = staffResponsesFlgCanLogin.stream().filter(it -> it.getLoginType() == 1 || it.getLoginType() == 3).collect(Collectors.toList());
+                        List<StaffResponse> collectWx = staffResponsesFlgCanLogin.stream().filter(it -> it.getLoginType() == 2 || it.getLoginType() == 3).collect(Collectors.toList());
+                        if (collectPc != null && collectPc.size() > 0 && intWebMaxnum < collectPc.size()) {
+                            // 无用户
+                            throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_PC_STAFF_ERROR.getCode(),
+                                    ErrorCodeEnum.USER_MAX_PC_STAFF_ERROR.getMessage());
+                        }
+                        if (collectWx != null && collectWx.size() > 0 && intWxMaxnum < collectWx.size()) {
+                            // 无用户
+                            throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_WX_STAFF_ERROR.getCode(),
+                                    ErrorCodeEnum.USER_MAX_WX_STAFF_ERROR.getMessage());
+                        }
+                    }
+
                 }
+
+//                if (staffResponsesFlgCanLogin != null && staffResponsesFlgCanLogin.size() > 0 && intMaxnum < staffResponsesFlgCanLogin.size()) {
+//                    // 无用户
+//                    throw new BaseBusinessException(ErrorCodeEnum.USER_MAX_STAFF_ERROR.getCode(),
+//                            ErrorCodeEnum.USER_MAX_STAFF_ERROR.getMessage());
+//                }
+
             }
+//            if (staffResponseOld.getFlgCanLogin() != staffVO.getFlgCanLogin()) {
+//                // 增加一个可以cur_staff_num
+//                Map<String, Object> m = new HashMap<>();
+//                m.put("curStaffNum", 1);
+//                m.put("cpId", cpId);
+//                ResponseResultVO<Boolean> booleanResponseResultVO = companyFeign.updateCompanyCurStaffNum(m);
+//                if (booleanResponseResultVO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+//                    // 无用户
+//                    throw new BaseBusinessException(ErrorCodeEnum.USER_REGISTER_ERROR.getCode(),
+//                            ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
+//                }
+//            }
         } else {
-            if (staffResponseOld.getFlgCanLogin() != staffVO.getFlgCanLogin()) {
-                // 减少一个可以cur_staff_num
-                Map<String, Object> m = new HashMap<>();
-                m.put("curStaffNum", -1);
-                m.put("cpId", cpId);
-                ResponseResultVO<Boolean> booleanResponseResultVO = companyFeign.updateCompanyCurStaffNum(m);
-                if (booleanResponseResultVO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
-                    // 无用户
-                    throw new BaseBusinessException(ErrorCodeEnum.USER_REGISTER_ERROR.getCode(),
-                            ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
-                }
-            }
+//            2024-05-20 edit
+//            if (staffResponseOld.getFlgCanLogin() != staffVO.getFlgCanLogin()) {
+//                // 减少一个可以cur_staff_num
+//                Map<String, Object> m = new HashMap<>();
+//                m.put("curStaffNum", -1);
+//                m.put("cpId", cpId);
+//                ResponseResultVO<Boolean> booleanResponseResultVO = companyFeign.updateCompanyCurStaffNum(m);
+//                if (booleanResponseResultVO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+//                    // 无用户
+//                    throw new BaseBusinessException(ErrorCodeEnum.USER_REGISTER_ERROR.getCode(),
+//                            ErrorCodeEnum.USER_REGISTER_ERROR.getMessage());
+//                }
+//            }
         }
         return ResponseResultUtil.success();
     }