瀏覽代碼

用友出库

hfxc226 2 年之前
父節點
當前提交
ff4bebff87
共有 21 個文件被更改,包括 364 次插入160 次删除
  1. 2 1
      platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java
  2. 14 0
      platform-common/src/main/java/com/platform/common/yongyou/request/GetInventoryListRequest.java
  3. 1 10
      platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java
  4. 55 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryList.java
  5. 14 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryListResponse.java
  6. 15 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryListResponseData.java
  7. 4 0
      platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreDetailDTO.java
  8. 8 0
      platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreFormDTO.java
  9. 4 0
      platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreDetail.java
  10. 8 0
      platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreForm.java
  11. 10 4
      platform-dao/src/main/java/com/platform/dao/enums/OutStoreStatusEnum.java
  12. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreDetailVO.java
  13. 8 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreFormVO.java
  14. 5 0
      platform-dao/src/main/resources/mapper/store/OutStoreDetailMapper.xml
  15. 8 1
      platform-dao/src/main/resources/mapper/store/OutStoreFormMapper.xml
  16. 16 3
      platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java
  17. 29 15
      platform-service/src/main/java/com/platform/service/store/OutStoreFormService.java
  18. 31 12
      platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java
  19. 13 17
      platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java
  20. 84 97
      platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java
  21. 31 0
      platform-service/src/main/java/handler/yongyou/GetInventoryListHandler.java

+ 2 - 1
platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java

@@ -28,7 +28,8 @@ public enum DictTypeEnum {
     FILL_PROJECT_QUANTITY_UNIT("FILL_PROJECT_QUANTITY_UNIT", "项目单位"),
     THIRD_PARTY_YONGYOU("THIRD_PARTY_YONGYOU", "用友"),
     THIRD_PARTY_YONGYOU_LOGIN("LOGIN", "登录接口"),
-    THIRD_PARTY_YONGYOU_GETSTOCK("GETSTOCK", "存量接口"),
+    THIRD_PARTY_YONGYOU_INVENTORYLIST("INVENTORYLIST", "存量接口"),
+    THIRD_PARTY_YONGYOU_GETSTOCK("GETSTOCK", "存量库存接口"),
     THIRD_PARTY_YONGYOU_OTHEROUT("OTHEROUT", "出库申请单"),
     REMOTE_MEASURE("REMOTE_MEASURE", "设备遥测"),
     REMOTE_DEGREE("REMOTE_DEGREE", "设备电度"),;

+ 14 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/GetInventoryListRequest.java

@@ -0,0 +1,14 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class GetInventoryListRequest extends BaseRequest{
+    private Integer pageSize;// 第几页
+    private Integer pageNum;// 页数量
+    private String ccode;// 查询条件 cInvCode in('0341' ,'0301')
+
+}

+ 1 - 10
platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java

@@ -1,20 +1,11 @@
 package com.platform.common.yongyou.response;
 
-import com.sun.org.apache.xpath.internal.operations.Bool;
 import lombok.Data;
 
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-
-;//
-
 /**
  * 现存量查询响应
  */
 @Data
 public class GetCurrentStockResponse extends BaseResponse{
-    Integer total;// 总数
-    Integer pages;// 总页数
-    List<GetCurrentStock> data;
+    GetCurrentStockResponseData data;
 }

+ 55 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryList.java

@@ -0,0 +1,55 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+//
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class GetInventoryList extends BaseResponse{
+    private String cInvCode; // 存货编码"01019002069"
+    private String cInvName; // 存货名称"电源"
+    private String cInvStd; // 规格型号 "亿泰鑫 2U/550W/冗余电源/550W-E-102"
+    private String cInvAddCode; // 存货代码null
+    private String cInvCCode; // 存货代码null
+
+    private Integer fInvCIQExch; // 存货代码null
+    private String cGroupCode; // 计量单位组编码
+    private String cInvMnemCode; // 助记码
+
+    private String bInvEntrust; // 是否受托代销
+    private String bPiece; // 计件
+    private String bSale; // 是否内销
+    private String bSuitRetail; //
+    private String bCoupon; //
+    private String bStoreCard; //
+    private String bProcessProduct; //
+    private String bProcessMaterial; //
+
+    private String bExpSale; // 是否外销
+    private String bPurchase; // 是否采购
+    private String bImport; // 是否进口药品
+    private String bSelf; // 是否自制
+    private String bComsume; // 是否生产耗用
+    private String bProducing; // 是否在制
+    private String bService; // 是否应税劳务
+    private String bAccessary; // 是否成套件
+    private String bBondedInv; // 暂无描述
+    private String bInvType; // 是否折扣
+    private String cComUnitCode; // 主计量单位编码
+    private String cPUComUnitCode; // 采购默认计量单位编码
+    private String cSAComUnitCode; // 销售默认计量单位编码
+    private String cSTComUnitCode; // 库存默认计量单位编码
+    private String cCAComUnitCode; // 成本默认计量单位编码
+    private String iGroupType; // 计量单位组类别
+    private String cProductUnit; // 生产计量单位
+    private String cShopUnit; // 零售计量单位
+    private String bPlanInv; // 是否计划品
+    private String bCheckItem; //
+    private String bSrvItem; //
+}

+ 14 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryListResponse.java

@@ -0,0 +1,14 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class GetInventoryListResponse extends BaseResponse {
+
+    GetInventoryListResponseData data;
+}

+ 15 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetInventoryListResponseData.java

@@ -0,0 +1,15 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+;import java.util.List;//
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class GetInventoryListResponseData extends BaseResponse{
+    Integer total;// 总数
+    Double pages;// 总页数
+    List<GetInventoryList> Inventory;
+}

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreDetailDTO.java

@@ -144,4 +144,8 @@ public class OutStoreDetailDTO extends BaseDTO implements Serializable {
     private String ggxh; // 备件规格型号
     private BigDecimal realNum; // 实际数量
     private String cBatch; // 批次
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreFormDTO.java

@@ -120,6 +120,10 @@ public class OutStoreFormDTO extends BaseDTO implements Serializable {
      * 更新日期
      */
     private LocalDateTime updateTime;
+    /**
+     * 操作日期
+     */
+    private LocalDate userTime;
     /**
      * 更新日期开始
      */
@@ -139,4 +143,8 @@ public class OutStoreFormDTO extends BaseDTO implements Serializable {
 
     private String yyId; ;// 用友单号id
     private String storeName; ;// 仓库
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreDetail.java

@@ -99,4 +99,8 @@ public class OutStoreDetail implements Serializable{
     private String no; // 备件编号
     private String ggxh; // 备件规格型号
     private String cBatch; // 批次
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreForm.java

@@ -84,6 +84,10 @@ public class OutStoreForm implements Serializable{
      */
     private LocalDateTime updateTime;
 
+    /**
+     * 操作日期
+     */
+    private LocalDate userTime;
    /**
     * 数据权限
     */
@@ -92,4 +96,8 @@ public class OutStoreForm implements Serializable{
 
     private String yyId; ;// 用友单号id
     private String storeName; ;// 仓库
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 10 - 4
platform-dao/src/main/java/com/platform/dao/enums/OutStoreStatusEnum.java

@@ -12,16 +12,22 @@ import lombok.Getter;
 @Getter
 @AllArgsConstructor
 public enum OutStoreStatusEnum {
-
     /**
-     * 未出库
+     * 新建
+     */
+    CREATED(0),
+    /**
+     * 未出库:待审核(等待主管审核)
      */
     NOT_EXECUTE(1),
     /**
-     * 已出库
+     * 已出库:提交到用友审核
      */
     EXECUTING(2),
-    ;
+    /**
+     * 已完成
+     */
+    FINISH(3);
     private final Integer value;
 
 }

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreDetailVO.java

@@ -127,4 +127,8 @@ public class OutStoreDetailVO extends BaseVO implements Serializable {
     private BigDecimal realNum; ;// 实际数量
 
     private String cBatch; // 批次
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreFormVO.java

@@ -77,6 +77,10 @@ public class OutStoreFormVO extends BaseVO implements Serializable {
      * 创建人名称
      */
     private String createdUserName;
+    /**
+     * 操作日期
+     */
+    private LocalDate userTime;
     /**
      * 更新人
      */
@@ -103,4 +107,8 @@ public class OutStoreFormVO extends BaseVO implements Serializable {
     private List<OutStoreDetailVO> detailList;
 
     private String yyId; ;// 用友单号id
+    /**
+     * 是否出库:0退库,1出库
+     */
+    private Boolean isOut;
 }

+ 5 - 0
platform-dao/src/main/resources/mapper/store/OutStoreDetailMapper.xml

@@ -11,6 +11,7 @@
                                      outstoredetail.ggxh,
                                      outstoredetail.real_num,
                                      outstoredetail.yy_id,
+                                     outstoredetail.is_out,
 outstoredetail.c_batch,
                                      outstoredetail.store_name,
                                      outstoredetail.spare_name,
@@ -36,6 +37,7 @@ outstoredetail.c_batch,
 outstoredetail.c_batch,
                                      outstoredetail.real_num,
                                      outstoredetail.yy_id,
+                                     outstoredetail.is_out,
                                      outstoredetail.store_name,
                                      outstoredetail.spare_name,
                                      outstoredetail.num,
@@ -49,6 +51,9 @@ outstoredetail.c_batch,
         <if test="outId != null and outId != ''">
             and outstoredetail.out_id = #{outId}
         </if>
+        <if test="isOut != null and isOut != ''">
+            and outstoredetail.is_out = #{isOut}
+        </if>
         <if test="type != null and type != ''">
             and outstoredetail.type = #{type}
         </if>

+ 8 - 1
platform-dao/src/main/resources/mapper/store/OutStoreFormMapper.xml

@@ -10,6 +10,7 @@
                                      outstoreform.pick_id,
                                      outstoreform.pick_no,
                                      outstoreform.remark,
+                                     outstoreform.is_out,
                                      outstoreform.created_user_id,
                                      outstoreform.created_user_name,
                                      outstoreform.update_user_id,
@@ -18,6 +19,7 @@
                                      outstoreform.store_id,
                                      outstoreform.store_name,
                                      outstoreform.created_time,
+                                     outstoreform.user_time,
                                      outstoreform.update_time
                         </sql>
     <sql id="Ref_Column_List">
@@ -29,6 +31,8 @@
                                       outstoreform.store_id,
                                      outstoreform.pick_id,
                                      outstoreform.pick_no,
+                                     outstoreform.user_time,
+                                     outstoreform.is_out,
                                      outstoreform.store_name,
                                      outstoreform.remark,
                                                                                                                                                                                                                                                                                                 </sql>
@@ -48,6 +52,9 @@
         <if test="pickId != null and pickId != ''">
             and outstoreform.pick_id = #{pickId}
         </if>
+        <if test="isOut != null">
+            and outstoreform.is_out = #{isOut}
+        </if>
         <if test="pickNo != null and pickNo != ''">
             and outstoreform.pick_no = #{pickNo}
         </if>
@@ -134,7 +141,7 @@
         <where>
             <include refid="List_Condition"/>
             <if test="userId != null and userId != ''">
-                and store.user_id = #{userId}
+                and outstoreform.created_user_id = #{userId}
             </if>
         </where>
     </select>

+ 16 - 3
platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java

@@ -44,12 +44,25 @@ public class YongyouController {
     /**
      * 查询用友存量分页数据
      *
+     * @param sparePartInfoDTO 备件查询条件DTO
+     * @param pageNum          当前页码
+     * @param pageSize         每页条数
+     * @return R
+     */
+    @GetMapping("/spare/page")
+    public R<AbstractPageResultBean<SparePartInfoVO>> query(SparePartInfoDTO sparePartInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(yongyouService.selectPageList(sparePartInfoDTO, pageNum, pageSize));
+    }
+
+    /**
+     * 查询用友存量库存分页数据
+     *
      * @param spareStoreDTO 备件查询条件DTO
      * @param pageNum          当前页码
      * @param pageSize         每页条数
      * @return R
      */
-    @GetMapping("/page")
+    @GetMapping("/spareStore/page")
     public R<AbstractPageResultBean<SpareStoreVO>> query(SpareStoreDTO spareStoreDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
         return new R<>(yongyouService.selectPageList(spareStoreDTO, pageNum, pageSize));
     }
@@ -90,7 +103,7 @@ public class YongyouController {
     @SysLog("发起用友退库单")
     @PutMapping("/spare/restore/form/{id}")
     public R addSpareRestoreForm( @PathVariable("id") String id) {
-        yongyouService.addRestoreForm(id);
+        yongyouService.addOutForm(id);
         return new R<>();
     }
     /**
@@ -103,7 +116,7 @@ public class YongyouController {
     @SysLog("用友回调退库单")
     @PostMapping("/spare/restore/form")
     public R updateSpareRestoreForm(String jsonStr) {
-        yongyouService.backRestoreForm(jsonStr);
+        yongyouService.backOutForm(jsonStr);
         return new R<>();
     }
 

+ 29 - 15
platform-service/src/main/java/com/platform/service/store/OutStoreFormService.java

@@ -9,6 +9,7 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.vo.query.store.SparePickDetailVO;
 import com.platform.dao.vo.query.store.StoreCheckJobVO;
 import com.platform.service.base.IBaseService;
+
 import java.util.List;
 
 /**
@@ -19,25 +20,26 @@ import java.util.List;
  */
 public interface OutStoreFormService extends IBaseService<OutStoreForm, OutStoreFormDTO> {
 
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
-   /**
-    * 级联删除
-    * 删除出库单与出库详情,同时要更新库存
-    *
-    * @param id :
-    * @return :
-    */
+    /**
+     * 级联删除
+     * 删除出库单与出库详情,同时要更新库存
+     *
+     * @param id :
+     * @return :
+     */
     boolean cascadingDeleteByKey(String id);
 
     /**
      * 分页查询
+     *
      * @param record
      * @param pageNum
      * @param pageSize
@@ -47,13 +49,16 @@ public interface OutStoreFormService extends IBaseService<OutStoreForm, OutStore
 
     /**
      * 查看详情
+     *
      * @param id
      * @return
      */
     OutStoreFormVO getDetail(Object id);
 
-    void updateModelByDTO(OutStoreFormDTO model) ;
-  void updateModelByDTOYY(OutStoreFormDTO model) ;
+    void updateModelByDTO(OutStoreFormDTO model);
+
+    void updateModelByDTOYY(OutStoreFormDTO model);
+
     OutStoreForm saveModelByPickForm(SparePickFormDTO sparePickFormDTO, List<SparePickDetailVO> pickDetailList);
 
     void updateStore(String outStoreFormId);
@@ -63,8 +68,17 @@ public interface OutStoreFormService extends IBaseService<OutStoreForm, OutStore
     void saveModelBySbOil(List<SbOil> sbOils);
 
     void saveModelByStoreCheckJob(List<StoreCheckJobVO> jobs);
+
     //撤销出库
     void pasteOutStore(String id);
 
     OutStoreForm saveModelByDTOYY(OutStoreFormDTO outStoreFormDTO);
+
+    /**
+     * 提交领用申请,生成待审批的出库单
+     *
+     * @param id
+     * @param yyId
+     */
+    void updateModelByIdYongyou(String id, String yyId);
 }

+ 31 - 12
platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java

@@ -80,12 +80,12 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         }
         UserInfo userInfo1 = SecurityUtils.getUserInfo();
         String userNames = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.STORE_SUPER_USERS.name());
-        if(StringUtils.isBlank(userNames)){
+        if (StringUtils.isBlank(userNames)) {
             throw new DeniedException("请设置仓库菜单的超级用户");
         }
-        if(userNames.contains(userInfo1.getUsername())){
+        if (userNames.contains(userInfo1.getUsername())) {
             model.setUserId(null);
-        }else {
+        } else {
             model.setUserId(userInfo1.getUserId());
         }
 
@@ -157,6 +157,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
 
     /**
      * 判断出库是否是同一个仓库,不是则提示不能提交,请改
+     *
      * @param model
      * @return
      */
@@ -169,15 +170,15 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         model.setOutNo(IdGeneratorUtils.getOutStoreNo(++count));
         model.setDelFlag(false);
         model.setUserInfo(userInfo);
-        model.setStatus(OutStoreStatusEnum.NOT_EXECUTE.getValue());
+        model.setStatus(OutStoreStatusEnum.CREATED.getValue());
         OutStoreForm outStoreForm = super.saveModelByDTO(model);
         // 出库单详情
         List<OutStoreDetailDTO> detailList = model.getDetailList();
         List<String> storeIds = detailList.stream().map(OutStoreDetailDTO::getStoreId).distinct().collect(Collectors.toList());
-        if(CollectionUtils.isEmpty(storeIds)){
+        if (CollectionUtils.isEmpty(storeIds)) {
             throw new BusinessException("请选择仓库备件");
         }
-        if(storeIds.size()>1){
+        if (storeIds.size() > 1) {
             throw new BusinessException("请从同一个仓库选择备件");
         }
 
@@ -219,6 +220,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
 
     /**
      * 判断出库是否是同一个仓库,不是则提示不能提交,请改
+     *
      * @param model
      * @return
      */
@@ -235,10 +237,10 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         // 出库单详情
         List<OutStoreDetailDTO> detailList = model.getDetailList();
         List<String> storeIds = detailList.stream().map(OutStoreDetailDTO::getStoreId).distinct().collect(Collectors.toList());
-        if(CollectionUtils.isEmpty(storeIds)){
+        if (CollectionUtils.isEmpty(storeIds)) {
             throw new BusinessException("请选择仓库备件");
         }
-        if(storeIds.size()>1){
+        if (storeIds.size() > 1) {
             throw new BusinessException("请从同一个仓库选择备件");
         }
         model.setStoreId(detailList.get(0).getStoreId());
@@ -248,6 +250,7 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         for (OutStoreDetailDTO detail : detailList) {
             detail.setUserInfo(userInfo);
             detail.setOutId(outStoreForm.getId());
+            detail.setRealNum(detail.getNum());
             detail.setOutNo(outStoreForm.getOutNo());
             OutStoreDetail storeDetail = new OutStoreDetail();
             BeanConverterUtil.copyObjectProperties(detail, storeDetail);
@@ -445,10 +448,10 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         UserInfo userInfo = SecurityUtils.getUserInfo();
         List<OutStoreDetailDTO> detailList = model.getDetailList();
         List<String> storeIds = detailList.stream().map(OutStoreDetailDTO::getStoreId).distinct().collect(Collectors.toList());
-        if(CollectionUtils.isEmpty(storeIds)){
+        if (CollectionUtils.isEmpty(storeIds)) {
             throw new BusinessException("请选择仓库备件");
         }
-        if(storeIds.size()>1){
+        if (storeIds.size() > 1) {
             throw new BusinessException("请从同一个仓库选择备件");
         }
         // 先删后插,前端删除的不存在与ids里面,说明被删掉了,需要删除,同时要更新对应的库存
@@ -473,19 +476,22 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
                 }
                 //detail.setStoreId(model.getStoreId());
                 detail.setOutNo(model.getOutNo());
+                detail.setIsOut(model.getIsOut());
+                detail.setRealNum(detail.getNum());
                 OutStoreDetail storeDetail = new OutStoreDetail();
                 BeanConverterUtil.copyObjectProperties(detail, storeDetail);
                 storeDetail.setId(IdGeneratorUtils.getObjectId());
                 addDetailList.add(storeDetail);
             } else {// 修改数量的
-                detail.setTotalPrice(detail.getNum().multiply(detail.getPrice()));
+                detail.setTotalPrice(new BigDecimal(0));
+                detail.setIsOut(model.getIsOut());
+                detail.setRealNum(detail.getNum());
                 totalPrice = totalPrice.add(detail.getTotalPrice());
                 OutStoreDetail storeDetail = new OutStoreDetail();
                 BeanConverterUtil.copyObjectProperties(detail, storeDetail);
                 updateDetailList.add(storeDetail);
             }
         }
-        ;
 
         if (!CollectionUtils.isEmpty(addDetailList)) {
             detailMapper.insertListforComplex(addDetailList);
@@ -767,4 +773,17 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         BigDecimal price = BigDecimalUtil.div(totalPrice, totalNum);
         return price;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateModelByIdYongyou(String id, String yyId) {
+        OutStoreForm outStoreForm = new OutStoreForm();
+        outStoreForm.setId(id);
+        outStoreForm.setYyId(yyId);
+        outStoreForm.setStatus(OutStoreStatusEnum.FINISH.getValue());
+        outStoreForm.setUpdateTime(LocalDateTime.now());
+        outStoreForm.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+        outStoreForm.setUpdateUserName(SecurityUtils.getUserInfo().getRealName());
+        mapper.updateByPrimaryKeySelective(outStoreForm);
+    }
 }

+ 13 - 17
platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java

@@ -23,42 +23,38 @@ import java.util.List;
 public interface YongyouService {
 
     /**
-     * 分页查询
+     * 分页查询备件列表
      *
      * @param record
      * @param pageNum
      * @param pageSize
      * @return
      */
-    AbstractPageResultBean<SpareStoreVO> selectPageList(SpareStoreDTO record, int pageNum, int pageSize);
+    AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize);
 
     /**
-     * 出库单发起用友
+     * 分页查询备件库存
      *
-     * @param id 领用单id
-     * @return
-     */
-    void addOutForm(String id);
-    /**
-     * 出库单用友回调
-     *
-     * @param jsonStr
+     * @param record
+     * @param pageNum
+     * @param pageSize
      * @return
      */
-    void backOutForm(String jsonStr);
+    AbstractPageResultBean<SpareStoreVO> selectPageList(SpareStoreDTO record, int pageNum, int pageSize);
+
     /**
-     * 退库单发起用友
+     * 出库单(退库单发起用友
      *
-     * @param id 退库单id
+     * @param id 领用单id
      * @return
      */
-    void addRestoreForm(String id);
+    void addOutForm(String id);
     /**
-     * 退库单发起回调
+     * 出库单(退库单)用友回调
      *
      * @param jsonStr
      * @return
      */
-    void backRestoreForm(String jsonStr);
+    void backOutForm(String jsonStr);
 
 }

+ 84 - 97
platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

@@ -8,6 +8,7 @@ import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.enums.DataFilterTypeEnum;
+import com.platform.common.exception.BusinessException;
 import com.platform.common.model.UserInfo;
 import com.platform.common.util.*;
 import com.platform.common.yongyou.request.*;
@@ -19,6 +20,7 @@ import com.platform.dao.dto.store.SparePickDetailDTO;
 import com.platform.dao.dto.store.SparePickFormDTO;
 import com.platform.dao.dto.store.SpareRestoreFormDTO;
 import com.platform.dao.dto.store.SpareStoreDTO;
+import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.store.*;
 import com.platform.dao.enums.SparePickFormStatusEnum;
 import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
@@ -30,6 +32,7 @@ import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.store.*;
 import com.platform.service.yongyou.YongyouService;
 import handler.yongyou.GetCurrentStockHandler;
+import handler.yongyou.GetInventoryListHandler;
 import handler.yongyou.LoginHandler;
 import handler.yongyou.OtherOutHandler;
 import lombok.AllArgsConstructor;
@@ -39,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import tk.mybatis.mapper.weekend.Weekend;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -56,10 +60,10 @@ import java.util.stream.Collectors;
 @Slf4j
 @Service("yongyouService")
 public class YongyouServiceImpl implements YongyouService {
-    private SparePickFormService sparePickFormService;
-    private SparePickDetailService sparePickDetailService;
-    private SpareRestoreFormService spareRestoreFormService;
-    private SpareRestoreDetailService spareRestoreDetailService;
+    @Resource
+    private OutStoreFormService outStoreFormService;
+    @Resource
+    private OutStoreDetailService outStoreDetailService;
     private String token_key = "yongyou-token";
     private String Conn_key = "yongyou-Conn";
     private String cAcc_ID_key = "yongyou-cAcc_ID";
@@ -89,6 +93,9 @@ public class YongyouServiceImpl implements YongyouService {
         handler.setRequest(req);
         String responseStr = handler.handler();
         LoginResponse response = JSONObject.parseObject(responseStr, LoginResponse.class);
+        if(!response.getResult()){
+            throw new BusinessException(response.getMsg());
+        }
         Login login = response.getData();
         String token = login.getToken();
         RedisUtils.setString(token_key, token, 1800);
@@ -126,6 +133,9 @@ public class YongyouServiceImpl implements YongyouService {
         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<>();
@@ -149,7 +159,6 @@ public class YongyouServiceImpl implements YongyouService {
         myVOPage.setPageNum(pageNum);
         myVOPage.setPageSize(pageSize);
         Page page = new Page(pageNum, pageSize);
-        page.setTotal(322);
         page.setTotal(data.getTotal());
         myVOPage.setPages(data.getPages().intValue());
         myVOPage.setTotal(page.getTotal());
@@ -158,122 +167,94 @@ public class YongyouServiceImpl implements YongyouService {
     }
 
     /**
-     * 提交领用单到出库单
+     * 查询存量分页
      *
-     * @param id 领用单id
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
      */
     @Override
-    public void addOutForm(String id) {
-        SparePickFormVO sparePickFormVO = sparePickFormService.getDetail(id);
-        OtherOutVouch otherOutVouch = new OtherOutVouch();
-        OtherOutMain otherOutMain = new OtherOutMain();
-        List<OtherOutDetail> otherOutDetail = new ArrayList<>();
-        otherOutVouch.setOtherOutMain(otherOutMain);
-        otherOutVouch.setOtherOutDetail(otherOutDetail);
-        otherOutMain.setBrdflag(0);
-        otherOutMain.setCvouchtype("0");
-        otherOutMain.setCbustype("其他出库");
-        otherOutMain.setCwhcode("034");
-        otherOutMain.setDdate(DateUtils.dateToString(LocalDateTime.now()));
-        otherOutMain.setVt_id("85");
-        otherOutMain.setBisstqc(false);
-        otherOutMain.setCcode("0000000006");
-        otherOutMain.setCrdcode("2a");
-        otherOutMain.setCsource("库存");
-
-        otherOutMain.setCdefine1(sparePickFormVO.getId());// 保存设备系统的id
-        otherOutMain.setCmaker(sparePickFormVO.getCreatedUserName());// 申请人名称
-        List<SparePickDetailVO> detailVOS = sparePickFormVO.getDetailList();
-        for (SparePickDetailVO vo : detailVOS) {
-            OtherOutDetail detail = new OtherOutDetail();
-            detail.setId(vo.getSpareId());
-            detail.setCinvcode(vo.getNo());
-            detail.setIquantity(vo.getNum());
-            detail.setIunitcost(vo.getPrice());
-            detail.setIprice(vo.getTotalPrice());
-            otherOutDetail.add(detail);
-        }
-
-        // 推送数据
-        OtherOutHandler handler = new OtherOutHandler();
-        OtherOutAddRequest req = new OtherOutAddRequest();
-        req.setOtherOutVouch(otherOutVouch);
+    public AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize) {
+        // 已生成情况,直接推送
+        GetInventoryListHandler handler = new GetInventoryListHandler();
+        GetInventoryListRequest req = new GetInventoryListRequest();
         req.setToken(geToken());
         req.setConn(getConn());
         req.setCAcc_ID(getCAccId());
+        req.setPageNum(pageNum);
+        req.setPageSize(pageSize);
+        req.setCcode("1=1");
         handler.setRequest(req);
         String responseStr = handler.handler();
-        OtherOutAddResponse response = JSONObject.parseObject(responseStr, OtherOutAddResponse.class);
-        String data = response.getData();
-
-        // 保存用友出库单数据
-        sparePickFormService.updateModelByIdYongyou(sparePickFormVO.getId(), data);
-    }
-
-    /**
-     * 领用单用友回调,回写实际数量和状态
-     *
-     * @param jsonStr
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void backOutForm(String jsonStr) {
-        JSONObject jsonObject = JSON.parseObject(jsonStr);
-        String id = (String) jsonObject.get("id");
-        String status = (String) jsonObject.get("status");
-        String time = (String) jsonObject.get("time");
-        JSONArray detailList = (JSONArray) jsonObject.get("detailList");
-
-        for (Iterator<Object> iterator = detailList.iterator(); iterator.hasNext(); ) {
-            JSONObject next = (JSONObject) iterator.next();
-            String spareId = next.getString("spareId");
-            String spareNum = next.getString("spareNum");
-            String detailId = next.getString("detailId");
-            String spareGGXH = next.getString("spareGGXH");
-            SparePickDetail sparePickDetail = new SparePickDetail();
-            sparePickDetail.setId(detailId);
-            sparePickDetail.setNum(new BigDecimal(spareNum));
-            sparePickDetail.setSpareGgxh(spareGGXH);
-            sparePickDetailService.modModelByPrimaryKey(sparePickDetail);
+        GetInventoryListResponse response = JSONObject.parseObject(responseStr, GetInventoryListResponse.class);
+        if(!response.getResult()){
+            throw new BusinessException(response.getMsg());
+        }
+        GetInventoryListResponseData data = response.getData();
+        List<GetInventoryList> stocks = data.getInventory();
+        List<SparePartInfoVO> partInfoVOS = new ArrayList<>();
+        for (GetInventoryList inventory : stocks) {
+            SparePartInfoVO partInfoVO = new SparePartInfoVO();
+            partInfoVO.setId(inventory.getCInvCode() + "");
+            partInfoVO.setNo(inventory.getCInvAddCode());
+            partInfoVO.setName(inventory.getCInvName());
+            partInfoVO.setGgxh(inventory.getCInvStd());
+            partInfoVO.setUnit(inventory.getCProductUnit());
+            partInfoVOS.add(partInfoVO);
         }
-        SparePickForm sparePickForm = new SparePickForm();
-        sparePickForm.setStatus(2);
-        sparePickForm.setId(id);
-        sparePickFormService.modModelByPrimaryKey(sparePickForm);
 
+        PageHelper.startPage(pageNum, pageSize);
+        MyVOPage<SparePartInfoVO> myVOPage = new MyVOPage<>();
+        myVOPage.setPageNum(pageNum);
+        myVOPage.setPageSize(pageSize);
+        Page page = new Page(pageNum, pageSize);
+        page.setTotal(data.getTotal());
+        myVOPage.setPages(data.getPages().intValue());
+        myVOPage.setTotal(page.getTotal());
+        myVOPage.setRows(partInfoVOS);
+        return myVOPage;
     }
 
     /**
-     * 提交退库单到出库单
+     * 提交出库单到用友
      *
      * @param id 领用单id
      */
     @Override
-    public void addRestoreForm(String id) {
-        SpareRestoreFormVO sparePickFormVO = spareRestoreFormService.getDetail(id);
+    public void addOutForm(String id) {
+        OutStoreFormVO outStoreFormVO = outStoreFormService.getDetail(id);
         OtherOutVouch otherOutVouch = new OtherOutVouch();
         OtherOutMain otherOutMain = new OtherOutMain();
         List<OtherOutDetail> otherOutDetail = new ArrayList<>();
         otherOutVouch.setOtherOutMain(otherOutMain);
         otherOutVouch.setOtherOutDetail(otherOutDetail);
         otherOutMain.setBrdflag(0);
-        otherOutMain.setCvouchtype("0");
+        otherOutMain.setCvouchtype("09");
         otherOutMain.setCbustype("其他出库");
-        otherOutMain.setCwhcode("034");
+        otherOutMain.setCwhcode(outStoreFormVO.getStoreId());
         otherOutMain.setDdate(DateUtils.dateToString(LocalDateTime.now()));
         otherOutMain.setVt_id("85");
         otherOutMain.setBisstqc(false);
         otherOutMain.setCcode("0000000006");
-        otherOutMain.setCrdcode("2a");
+        otherOutMain.setCrdcode("202"); // 材料出库
         otherOutMain.setCsource("库存");
 
-        otherOutMain.setCdefine1(sparePickFormVO.getId());// 保存设备系统的id
-        otherOutMain.setCmaker(sparePickFormVO.getCreatedUserName());// 申请人名称
-        List<SpareRestoreDetailVO> detailVOS = sparePickFormVO.getDetailList();
-        for (SpareRestoreDetailVO vo : detailVOS) {
+        otherOutMain.setCdefine1(outStoreFormVO.getId());// 保存设备系统的id
+        otherOutMain.setCmaker(outStoreFormVO.getCreatedUserName());// 申请人名称
+        List<OutStoreDetailVO> detailVOS = outStoreFormVO.getDetailList();
+        for (OutStoreDetailVO vo : detailVOS) {
             OtherOutDetail detail = new OtherOutDetail();
             detail.setId(vo.getSpareId());
-            detail.setIquantity(vo.getNum().negate() );// 取负数
+            detail.setCinvcode(vo.getNo());
+            if(vo.getIsOut()){
+                detail.setIquantity(vo.getNum());
+            }else{// 负数为退库
+                detail.setIquantity(vo.getNum().negate());
+            }
+            detail.setIunitcost(vo.getPrice());
+            detail.setIprice(vo.getTotalPrice());
+            detail.setCbatch(vo.getCBatch());
             otherOutDetail.add(detail);
         }
 
@@ -284,22 +265,27 @@ public class YongyouServiceImpl implements YongyouService {
         req.setToken(geToken());
         req.setConn(getConn());
         req.setCAcc_ID(getCAccId());
+        req.setTradeID("");
         handler.setRequest(req);
         String responseStr = handler.handler();
         OtherOutAddResponse response = JSONObject.parseObject(responseStr, OtherOutAddResponse.class);
+        if(!response.getResult()){
+            throw new BusinessException(response.getMsg());
+        }
         String data = response.getData();
 
         // 保存用友出库单数据
-        spareRestoreFormService.updateModelByIdYongyou(sparePickFormVO.getId(), data);
+        outStoreFormService.updateModelByIdYongyou(outStoreFormVO.getId(), data);
     }
 
     /**
-     * 退库单用友回调
+     * 领用单用友回调,回写实际数量和状态
      *
      * @param jsonStr
      */
     @Override
-    public void backRestoreForm(String jsonStr) {
+    @Transactional(rollbackFor = Exception.class)
+    public void backOutForm(String jsonStr) {
         JSONObject jsonObject = JSON.parseObject(jsonStr);
         String id = (String) jsonObject.get("id");
         String status = (String) jsonObject.get("status");
@@ -312,15 +298,16 @@ public class YongyouServiceImpl implements YongyouService {
             String spareNum = next.getString("spareNum");
             String detailId = next.getString("detailId");
             String spareGGXH = next.getString("spareGGXH");
-            SpareRestoreDetail sparePickDetail = new SpareRestoreDetail();
+            OutStoreDetail sparePickDetail = new OutStoreDetail();
             sparePickDetail.setId(detailId);
             sparePickDetail.setNum(new BigDecimal(spareNum));
-            sparePickDetail.setSpareGgxh(spareGGXH);
-            spareRestoreDetailService.modModelByPrimaryKey(sparePickDetail);
+            sparePickDetail.setGgxh(spareGGXH);
+            outStoreDetailService.modModelByPrimaryKey(sparePickDetail);
         }
-        SpareRestoreForm sparePickForm = new SpareRestoreForm();
+        OutStoreForm sparePickForm = new OutStoreForm();
         sparePickForm.setStatus(2);
         sparePickForm.setId(id);
-        spareRestoreFormService.modModelByPrimaryKey(sparePickForm);
+        outStoreFormService.modModelByPrimaryKey(sparePickForm);
     }
+
 }

+ 31 - 0
platform-service/src/main/java/handler/yongyou/GetInventoryListHandler.java

@@ -0,0 +1,31 @@
+package handler.yongyou;
+
+import com.platform.common.enums.DictTypeEnum;
+import com.platform.common.yongyou.request.BaseRequest;
+import com.platform.common.yongyou.request.GetCurrentStockRequest;
+import com.platform.common.yongyou.request.GetInventoryListRequest;
+import com.platform.common.yongyou.response.BaseResponse;
+import com.platform.common.yongyou.response.GetCurrentStockResponse;
+import com.platform.common.yongyou.response.GetInventoryListResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class GetInventoryListHandler extends BaseRequestHandler{
+
+    public GetInventoryListHandler(){
+        setServiceType(DictTypeEnum.THIRD_PARTY_YONGYOU_INVENTORYLIST.getType());
+    }
+
+    /**
+     * 获取分页数据
+     * @param req
+     * @param resp
+     */
+    @Override
+    public void successResponse(BaseRequest req, BaseResponse resp) {
+        GetInventoryListRequest request = (GetInventoryListRequest)req;
+        GetInventoryListResponse response = (GetInventoryListResponse)resp;
+    }
+}