1 年之前
父節點
當前提交
b26a338c0b

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbModelSpareBomDTO.java

@@ -30,6 +30,10 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbModelSpareBomDTO extends BaseDTO implements Serializable {
+    /**
+     * 0:未知,1:新厂,2:老厂
+     */
+    private Integer oldOrNew;
     private boolean cover;
     private List<String> notSpareIds;
     private List<String> spareIds;

+ 34 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SpareVO.java

@@ -0,0 +1,34 @@
+package com.platform.dao.dto.sb;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.persistence.Transient;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 设备基础信息DTO
+ * @Author liuyu
+ * @Date 2020-04-21 21:05:46
+ * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class SpareVO extends BaseDTO implements Serializable {
+    /**
+     * 0:未知,1:新厂,2:老厂
+     */
+    private Integer oldOrNew;
+
+    private String cInvCode;
+
+
+}

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/SpareStoreDTO.java

@@ -2,6 +2,8 @@ package com.platform.dao.dto.store;
 
 import com.platform.common.bean.BaseDTO;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sb.SpareVO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -24,6 +26,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SpareStoreDTO extends BaseDTO implements Serializable {
+    List<SpareVO> spareVOS;
     private String pickId;
 
     private Integer tokenType;

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbModelSpareBom.java

@@ -22,6 +22,10 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 @Table(name = "t_sb_model_spare_bom")
 public class SbModelSpareBom implements Serializable {
+    /**
+     * 0:未知,1:新厂,2:老厂
+     */
+    private Integer oldOrNew;
 
     /**
      * 主键

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/mapper/sb/SbModelSpareBomMapper.java

@@ -11,6 +11,7 @@ import com.platform.dao.vo.query.check.CheckProjectStandardRelationVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -24,6 +25,7 @@ import java.util.List;
  */
 @Component
 public interface SbModelSpareBomMapper extends MyMapper<SbModelSpareBom> {
+    void updateBatch2(@Param("list") List<String> list,@Param("oldOrNew") Integer oldOrNew,@Param("sbId") String sbId);
     /**
      * 分页查询
      * @param dto

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbModelSpareBomVO.java

@@ -23,6 +23,10 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class SbModelSpareBomVO extends BaseVO implements Serializable {
+    /**
+     * 0:未知,1:新厂,2:老厂
+     */
+    private Integer oldOrNew;
     private String ggxh;
 
     /**

+ 14 - 0
platform-dao/src/main/resources/mapper/sb/SbModelSpareBomMapper.xml

@@ -141,4 +141,18 @@
             </if>
         </where>
     </select>
+    <update id="updateBatch2" >
+
+            update t_sb_model_spare_bom bom
+            <set>
+                bom.oldOrNew = #{oldOrNew}
+            </set>
+            where bom.sb_id=#{sbId}
+            <if test="list!=null and list.size()>0">
+            and bom.no in
+        <foreach collection="list" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+            </if>
+    </update>
 </mapper>

+ 5 - 0
platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java

@@ -110,6 +110,11 @@ public class YongyouController {
         return new R<>(yongyouService.selectPageList2(spareStoreDTO, pageNum, pageSize));
     }
 
+    @GetMapping("/spareStore/page3")
+    public R<List<SpareStoreVO>> querySpareStore3(SpareStoreDTO spareStoreDTO) {
+        return new R<>(yongyouService.selectPageList3(spareStoreDTO));
+    }
+
 
     /**
      * 同步请购单状态

+ 3 - 0
platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java

@@ -55,6 +55,9 @@ public interface YongyouService {
 
     AbstractPageResultBean<SpareStoreVO> selectPageList2(SpareStoreDTO record, int pageNum, int pageSize);
 
+    List<SpareStoreVO> selectPageList3(SpareStoreDTO record);
+
+
     /**
      * 出库单(退库单)发起用友
      *

+ 165 - 4
platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

@@ -12,6 +12,7 @@ import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
 import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.dto.sb.SbModelSpareBomDTO;
+import com.platform.dao.dto.sb.SpareVO;
 import com.platform.dao.dto.spareAdd.Inventory;
 import com.platform.dao.dto.spareAdd.InventoryTest;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
@@ -59,6 +60,7 @@ 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.stream.Collectors;
@@ -364,6 +366,7 @@ public class YongyouServiceImpl implements YongyouService {
         myVOPage.setRows(partInfoVOS);
         return myVOPage;
     }
+
     @Override
     public AbstractPageResultBean<SpareStoreVO> selectPageList2(SpareStoreDTO record, int pageNum, int pageSize) {
         List<String> spareIds = null;
@@ -421,10 +424,10 @@ public class YongyouServiceImpl implements YongyouService {
         req.setPageNum(pageNum);
         req.setPageSize(pageSize);
         StringBuffer whereStr = new StringBuffer(" 1=1 ");
-            // 仓库编码搜索
-            if (StringUtils.isNotBlank(record.getStoreNo())) {
-                whereStr.append(" and cWhCode like '%" + record.getStoreNo() + "%' ");
-            }
+        // 仓库编码搜索
+        if (StringUtils.isNotBlank(record.getStoreNo())) {
+            whereStr.append(" and cWhCode like '%" + record.getStoreNo() + "%' ");
+        }
         // 仓库名称搜索
         if (StringUtils.isNotBlank(record.getStoreName())) {
             whereStr.append(" and cWhName like '%" + record.getStoreName() + "%' ");
@@ -493,6 +496,164 @@ public class YongyouServiceImpl implements YongyouService {
         return myVOPage;
     }
 
+    @Override
+    public List<SpareStoreVO> selectPageList3(SpareStoreDTO record) {
+
+        List<SpareVO> spareVOS = record.getSpareVOS();
+        Map<Integer, List<SpareVO>> map = new HashMap<>();
+        if (spareVOS != null && spareVOS.size() > 0) {
+            List<SpareVO> unknow = new ArrayList<>();
+            List<SpareVO> newF = new ArrayList<>();
+            List<SpareVO> oldF = new ArrayList<>();
+            for (SpareVO spareVO : spareVOS) {
+                if (spareVO.getOldOrNew() == 0) {
+                    unknow.add(spareVO);
+                } else if (spareVO.getOldOrNew() == 1) {
+                    newF.add(spareVO);
+                } else {
+                    oldF.add(spareVO);
+                }
+            }
+            if (unknow.size() > 0) {
+                map.put(0, unknow);
+            }
+            if (newF.size() > 0) {
+                map.put(1, newF);
+            }
+            if (oldF.size() > 0) {
+                map.put(2, oldF);
+            }
+
+            boolean isDev = BeanUtils.isDev();
+
+
+            String sqlStr = "";
+            List<SpareStoreVO> returnList = new ArrayList<>();
+            for (Map.Entry<Integer, List<SpareVO>> entry : map.entrySet()) {
+                GetCurrentStockHandler handler = new GetCurrentStockHandler();
+                GetCurrentStockRequest req = new GetCurrentStockRequest();
+                StringBuffer whereStr = new StringBuffer(" 1=1 ");
+
+                if (entry.getValue().size() > 0) {
+                    if (!isDev) {
+                        whereStr.append(" and cInvCode in (");
+                        if (entry.getKey() == 1) {
+                            req.setCAcc_ID("005");
+                            req.setToken(geToken(1));
+                            req.setConn(getConn2(1));
+                            for (SpareVO spareVO : newF) {
+                                whereStr.append(spareVO.getCInvCode() + ",");
+                            }
+                            sqlStr = whereStr.toString().substring(0, whereStr.toString().length() - 1) + ")";
+                            if (!sqlStr.equals("")) {
+                                req.setStrWhere(sqlStr);
+                            } else {
+                                req.setStrWhere(whereStr.toString());
+                            }
+                            returnList.addAll(getList(handler, req));
+
+                        } else if (entry.getKey() == 2) {
+                            req.setCAcc_ID("004");
+                            req.setToken(geToken(2));
+                            req.setConn(getConn2(2));
+                            for (SpareVO spareVO : newF) {
+                                whereStr.append(spareVO.getCInvCode() + ",");
+                            }
+                            sqlStr = whereStr.toString().substring(0, whereStr.toString().length() - 1) + ")";
+                            if (!sqlStr.equals("")) {
+                                req.setStrWhere(sqlStr);
+                            } else {
+                                req.setStrWhere(whereStr.toString());
+                            }
+                            returnList.addAll(getList(handler, req));
+                        }else if (entry.getKey()==0){
+                            req.setCAcc_ID("004");
+                            req.setToken(geToken(2));
+                            req.setConn(getConn2(2));
+                            for (SpareVO spareVO : unknow) {
+                                whereStr.append(spareVO.getCInvCode() + ",");
+                            }
+                            sqlStr = whereStr.toString().substring(0, whereStr.toString().length() - 1) + ")";
+                            if (!sqlStr.equals("")) {
+                                req.setStrWhere(sqlStr);
+                            } else {
+                                req.setStrWhere(whereStr.toString());
+                            }
+                            List<SpareStoreVO> oldSpareStoreVOS = getList(handler,req);
+                            List<String> spareNos = oldSpareStoreVOS.stream().map(SpareStoreVO::getNo).collect(Collectors.toList());
+                            sbModelSpareBomMapper.updateBatch2(spareNos,2,record.getSbId());
+                            returnList.addAll(oldSpareStoreVOS);
+
+                            req.setCAcc_ID("005");
+                            req.setToken(geToken(1));
+                            req.setConn(getConn2(1));
+                            for (SpareVO spareVO : unknow) {
+                                whereStr.append(spareVO.getCInvCode() + ",");
+                            }
+                            sqlStr = whereStr.toString().substring(0, whereStr.toString().length() - 1) + ")";
+                            if (!sqlStr.equals("")) {
+                                req.setStrWhere(sqlStr);
+                            } else {
+                                req.setStrWhere(whereStr.toString());
+                            }
+                            List<SpareStoreVO> oldSpareStoreVOS2 = getList(handler,req);
+                            List<String> spareNos2 = oldSpareStoreVOS.stream().map(SpareStoreVO::getNo).collect(Collectors.toList());
+                            sbModelSpareBomMapper.updateBatch2(spareNos2,2,record.getSbId());
+                            returnList.addAll(oldSpareStoreVOS2);
+                        }
+                        return returnList;
+                    }
+                } else {
+                    req.setCAcc_ID("993");
+                    req.setToken(geToken(1));
+                    req.setConn(getConn2(1));
+                    for (SpareVO spareVO : newF) {
+                        whereStr.append(spareVO.getCInvCode() + ",");
+                    }
+                    sqlStr = whereStr.toString().substring(0, whereStr.toString().length() - 1) + ")";
+                    if (!sqlStr.equals("")) {
+                        req.setStrWhere(sqlStr);
+                    } else {
+                        req.setStrWhere(whereStr.toString());
+                    }
+                    returnList.addAll(getList(handler, req));
+                }
+            }
+        }
+        return null;
+    }
+
+
+
+    private List<SpareStoreVO> getList(GetCurrentStockHandler handler, GetCurrentStockRequest req) {
+        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();
+        List<SpareStoreVO> partInfoVOS = new ArrayList<>();
+        for (GetCurrentStock stockResponse : stocks) {
+            SpareStoreVO partInfoVO = new SpareStoreVO();
+            partInfoVO.setId(stockResponse.getAutoId() + "");
+            partInfoVO.setNo(stockResponse.getCInvCode());
+            partInfoVO.setSpareId(stockResponse.getPartId() + "");
+            partInfoVO.setSpareName(stockResponse.getCInvName());
+            partInfoVO.setGgxh(stockResponse.getCInvStd());
+            partInfoVO.setNum(stockResponse.getIQuantity());
+            partInfoVO.setStoreName(stockResponse.getCWhName());
+            partInfoVO.setStoreId(stockResponse.getCWhCode());
+            partInfoVO.setUnit(stockResponse.getCComUnitName());
+            partInfoVO.setCBatch(stockResponse.getCBatch());
+            partInfoVO.setAutoId(stockResponse.getAutoId());
+            partInfoVO.setStorePosition(stockResponse.getCInvDefine1());
+            partInfoVOS.add(partInfoVO);
+        }
+        return partInfoVOS;
+    }
+
     private void addBom(LongYanPurchaseOrderVO model, List<LongYanPurchaseDetailVO> detailVOS) {
         List<String> sbIds = new ArrayList<>();
         SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(model.getSbId());