1 年之前
父节点
当前提交
93ed15fddb

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/dto/spareAdd/LongYanSpareAddDTO.java

@@ -20,6 +20,8 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanSpareAddDTO extends BaseDTO implements Serializable {
+    private String no;//物料编码
+
     private String caComUnitCode;//成本默认计量单位编码
 
     private String planMethod;//计划方法

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/spareAdd/LongYanSpareAdd.java

@@ -21,6 +21,7 @@ import javax.persistence.Transient;
 @Accessors(chain = true)
 @Table(name = "t_long_yan_spare_add")
 public class LongYanSpareAdd implements Serializable{
+    private String no;//物料编码
     private String caComUnitCode;//成本默认计量单位编码
 
     private String planMethod;//计划方法

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/spareAdd/LongYanSpareAddVO.java

@@ -18,6 +18,8 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanSpareAddVO extends BaseVO implements Serializable {
+    private String no;//物料编码
+
     private String caComUnitCode;//成本默认计量单位编码
 
     private String planMethod;//计划方法

+ 68 - 5
platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

@@ -59,10 +59,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -1057,6 +1054,7 @@ public class YongyouServiceImpl implements YongyouService {
         AddSpareResponse response = JSONObject.parseObject(responseStr, AddSpareResponse.class);
         if (response.getResult()) {
             longYanSpareAdd.setStatus(LongYanSpareAddStatusEnum.PUSHED.getValue());
+            longYanSpareAdd.setNo(getNo(longYanSpareAdd.getTokenType(),longYanSpareAdd.getCategory()));
             longYanSpareAddMapper.updateByPrimaryKeySelective(longYanSpareAdd);
             return response.getMsg();
         } else {
@@ -1070,9 +1068,70 @@ public class YongyouServiceImpl implements YongyouService {
         return null;
     }
 
+    private String getNo(Integer tokenType,String type){
+        GetCurrentStockHandler handler = new GetCurrentStockHandler();
+        GetCurrentStockRequest req = new GetCurrentStockRequest();
+        req.setToken(geToken(tokenType));
+        req.setConn(getConn2(tokenType));
+        boolean isDev = BeanUtils.isDev();
+        if(!isDev){
+            if (tokenType==1){
+                req.setCAcc_ID("005");
+            }else if (tokenType==2){
+                req.setCAcc_ID("004");
+            }
+        }else{
+            req.setCAcc_ID("993");
+        }
+        req.setPageNum(1);
+        req.setPageSize(9999);
+        StringBuffer whereStr = new StringBuffer(" 1=1 ");
+        // 仓库编码搜索
+
+        // 存货编码搜索
+        if (StringUtils.isNotBlank(type)) {
+            whereStr.append(" and cInvCode like '" + type + "%' ");
+        }
+
+        req.setStrWhere(whereStr.toString());
+        handler.setRequest(req);
+        String responseStr = handler.handler();
+        GetCurrentStockResponse response = JSONObject.parseObject(responseStr, GetCurrentStockResponse.class);
+        if (!response.getResult()) {
+            throw new BusinessException(response.getMsg());
+        }
+        GetCurrentStockResponseData data = response.getData();
+        List<GetCurrentStock> stocks = data.getStock();
+        if (stocks==null ||stocks.size()<=0){
+            return type+"0001";
+        }
+        stocks.sort(new Comparator<GetCurrentStock>() {
+            @Override
+            public int compare(GetCurrentStock o1, GetCurrentStock o2) {
+                return Long.parseLong(o1.getCInvCode())-Long.parseLong(o2.getCInvCode())>0L?1:-1;
+            }
+        });
+        String lastNo = stocks.get(0).getCInvCode();
+        Integer upNo = Integer.parseInt(lastNo.substring(lastNo.length()-4))+1;
+        String newNo = lastNo.substring(0,lastNo.length()-4);
+        if (upNo<10){
+            newNo = newNo+"000"+upNo.toString();
+        }else if (upNo<100){
+            newNo = newNo+"00"+upNo.toString();
+        }else if (upNo<1000){
+            newNo = newNo+"0" +upNo.toString();
+        }else if (upNo<10000){
+            newNo = newNo+upNo.toString();
+        }else if (upNo>9999){
+            throw new BusinessException("库存溢出,请联系管理员!");
+        }
+        return newNo;
+    }
+
 
     @Override
     public String addSpare(InventoryTest inventoryTest, Integer tokenType) {
+
         LongYanSpareAdd longYanSpareAdd = new LongYanSpareAdd();
         longYanSpareAdd.setTokenType(tokenType);
         try {
@@ -1093,7 +1152,6 @@ public class YongyouServiceImpl implements YongyouService {
             Inventory.setDInvCreateDatetime(DateUtils.dateToString(LocalDateTime.now()));
             Inventory.setCModifyPerson(userInfo.getRealName());
             Inventory.setDModifyDate(DateUtils.dateToString(LocalDateTime.now()));
-            request.setInventory(Inventory);
             request.setTradeID("");
             // 正式环境代码开始
             request.setToken(geToken(tokenType));
@@ -1106,6 +1164,7 @@ public class YongyouServiceImpl implements YongyouService {
             request.setCAcc_ID(getCAccIdTest());*/
             // 测试环境代码结束
             pakageAndInsertSpare(Inventory, userInfo,longYanSpareAdd);
+            request.setInventory(Inventory);
             AddSpareHandler handler = new AddSpareHandler();
             handler.setRequest(request);
             String responseStr = handler.handler();
@@ -1116,11 +1175,13 @@ public class YongyouServiceImpl implements YongyouService {
                 return response.getMsg();
             }else{
                 longYanSpareAdd.setStatus(LongYanSpareAddStatusEnum.FAIL_PUSH.getValue());
+                longYanSpareAdd.setNo("");
                 longYanSpareAddMapper.updateByPrimaryKeySelective(longYanSpareAdd);
                 return response.getMsg();
             }
         }catch (Exception e){
             longYanSpareAdd.setStatus(LongYanSpareAddStatusEnum.FAIL_PUSH.getValue());
+            longYanSpareAdd.setNo("");
             longYanSpareAddMapper.updateByPrimaryKeySelective(longYanSpareAdd);
             e.printStackTrace();
             throw new BusinessException("新增失败!");
@@ -1145,6 +1206,8 @@ public class YongyouServiceImpl implements YongyouService {
         longYanSpareAdd.setCaComUnitCode(inventory.getCCAComUnitCode());
         longYanSpareAdd.setPlanMethod(inventory.getCPlanMethod());
         longYanSpareAdd.setSrpolicy(inventory.getCSRPolicy());
+        longYanSpareAdd.setNo(getNo(longYanSpareAdd.getTokenType(),inventory.getCInvCCode()));
+        inventory.setCInvCode(longYanSpareAdd.getNo());
 
         longYanSpareAddMapper.insert(longYanSpareAdd);
     }