hfxc226 2 年 前
コミット
be1e522b0a
19 ファイル変更363 行追加138 行削除
  1. 18 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponseData.java
  2. 9 0
      platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreDetailDTO.java
  3. 2 0
      platform-dao/src/main/java/com/platform/dao/dto/store/OutStoreFormDTO.java
  4. 8 0
      platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreDetail.java
  5. 2 0
      platform-dao/src/main/java/com/platform/dao/entity/store/OutStoreForm.java
  6. 3 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreDetailVO.java
  7. 1 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/OutStoreFormVO.java
  8. 1 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/SpareStoreVO.java
  9. 14 0
      platform-dao/src/main/resources/mapper/store/OutStoreDetailMapper.xml
  10. 22 2
      platform-dao/src/main/resources/mapper/store/OutStoreFormMapper.xml
  11. 127 99
      platform-rest/src/main/java/com/platform/rest/controller/store/OutStoreFormController.java
  12. 1 1
      platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java
  13. 5 3
      platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java
  14. 3 1
      platform-service/src/main/java/com/platform/service/store/OutStoreFormService.java
  15. 1 1
      platform-service/src/main/java/com/platform/service/store/SpareStoreService.java
  16. 121 13
      platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java
  17. 1 1
      platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java
  18. 3 1
      platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java
  19. 21 16
      platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

+ 18 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponseData.java

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

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

@@ -135,4 +135,13 @@ public class OutStoreDetailDTO extends BaseDTO implements Serializable {
      * 搜索结束时间
      */
     private LocalDateTime searchEndTime;
+
+
+    private String yyId; // 用友单号id
+    private String spareName; // 备件名称
+    private String storeName; // 仓库名称
+    private String no; // 备件编号
+    private String ggxh; // 备件规格型号
+    private BigDecimal realNum; // 实际数量
+    private String cBatch; // 批次
 }

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

@@ -137,4 +137,6 @@ public class OutStoreFormDTO extends BaseDTO implements Serializable {
      */
     private List<OutStoreDetailDTO> detailList;
 
+    private String yyId; ;// 用友单号id
+    private String storeName; ;// 仓库
 }

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

@@ -91,4 +91,12 @@ public class OutStoreDetail implements Serializable{
     @Transient
     private DataScope dataScope;
 
+
+    private String yyId; ;// 用友单号id
+    private String spareName; ;// 备件名称
+    private String storeName; ;// 仓库名称
+    private BigDecimal realNum; ;// 实际数量
+    private String no; // 备件编号
+    private String ggxh; // 备件规格型号
+    private String cBatch; // 批次
 }

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

@@ -90,4 +90,6 @@ public class OutStoreForm implements Serializable{
     @Transient
     private DataScope dataScope;
 
+    private String yyId; ;// 用友单号id
+    private String storeName; ;// 仓库
 }

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

@@ -123,5 +123,8 @@ public class OutStoreDetailVO extends BaseVO implements Serializable {
      */
     private String weekDayName;
 
+    private String yyId; ;// 用友单号id
+    private BigDecimal realNum; ;// 实际数量
 
+    private String cBatch; // 批次
 }

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

@@ -102,4 +102,5 @@ public class OutStoreFormVO extends BaseVO implements Serializable {
      */
     private List<OutStoreDetailVO> detailList;
 
+    private String yyId; ;// 用友单号id
 }

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/store/SpareStoreVO.java

@@ -156,4 +156,5 @@ public class SpareStoreVO extends BaseVO implements Serializable {
      */
     private String unit;
 
+    private String cBatch; ;// 批号
 }

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

@@ -7,6 +7,13 @@
                                      outstoredetail.out_no,
                                      outstoredetail.store_id,
                                      outstoredetail.spare_id,
+                                     outstoredetail.no,
+                                     outstoredetail.ggxh,
+                                     outstoredetail.real_num,
+                                     outstoredetail.yy_id,
+outstoredetail.c_batch,
+                                     outstoredetail.store_name,
+                                     outstoredetail.spare_name,
                                      outstoredetail.num,
                                      outstoredetail.price,
                                      outstoredetail.total_price,
@@ -22,8 +29,15 @@
                                                                          outstoredetail.out_id,
                                      outstoredetail.out_no,
                                      outstoredetail.store_id,
+                                     outstoredetail.no,
+                                     outstoredetail.ggxh,
                                      outstoredetail.type,
                                      outstoredetail.spare_id,
+outstoredetail.c_batch,
+                                     outstoredetail.real_num,
+                                     outstoredetail.yy_id,
+                                     outstoredetail.store_name,
+                                     outstoredetail.spare_name,
                                      outstoredetail.num,
                                      outstoredetail.price,
                                      outstoredetail.total_price

+ 22 - 2
platform-dao/src/main/resources/mapper/store/OutStoreFormMapper.xml

@@ -6,6 +6,7 @@
                              outstoreform.total_price,
                                      outstoreform.out_no,
                                      outstoreform.type,
+                                     outstoreform.yy_id,
                                      outstoreform.pick_id,
                                      outstoreform.pick_no,
                                      outstoreform.remark,
@@ -15,6 +16,7 @@
                                      outstoreform.update_user_name,
                                      outstoreform.status,
                                      outstoreform.store_id,
+                                     outstoreform.store_name,
                                      outstoreform.created_time,
                                      outstoreform.update_time
                         </sql>
@@ -22,10 +24,12 @@
                                                                          outstoreform.out_no,
                                       outstoreform.total_price,
                                        outstoreform.status,
+                                     outstoreform.yy_id,
                                       outstoreform.type,
                                       outstoreform.store_id,
                                      outstoreform.pick_id,
                                      outstoreform.pick_no,
+                                     outstoreform.store_name,
                                      outstoreform.remark,
                                                                                                                                                                                                                                                                                                 </sql>
     <sql id="List_Condition">
@@ -105,7 +109,7 @@
             and outstoreform.status=#{status}
         </if>
     </sql>
-    <select id="selectList" parameterType="com.platform.dao.dto.store.OutStoreFormDTO"
+    <!--<select id="selectList" parameterType="com.platform.dao.dto.store.OutStoreFormDTO"
             resultType="com.platform.dao.vo.query.store.OutStoreFormVO">
         select outstoreform.*, store.name storeName
         from t_out_store_form as outstoreform
@@ -122,6 +126,17 @@
                 and store.user_id = #{userId}
             </if>
         </where>
+    </select>-->
+    <select id="selectList" parameterType="com.platform.dao.dto.store.OutStoreFormDTO"
+            resultType="com.platform.dao.vo.query.store.OutStoreFormVO">
+        select outstoreform.*
+        from t_out_store_form as outstoreform
+        <where>
+            <include refid="List_Condition"/>
+            <if test="userId != null and userId != ''">
+                and store.user_id = #{userId}
+            </if>
+        </where>
     </select>
 
 <!--    <select id="selectOutStoreList" parameterType="com.platform.dao.dto.store.OutStoreFormDTO"-->
@@ -131,7 +146,7 @@
 <!--        left join  t_out_store_form form on form.id = detail.out_id-->
 <!--    </select>-->
 
-    <select id="selectDetailList"  resultType="com.platform.dao.vo.query.store.OutStoreDetailVO">
+    <!--<select id="selectDetailList"  resultType="com.platform.dao.vo.query.store.OutStoreDetailVO">
         select detail.*,
                store.name storeName,
                spareinfo.name spareName,
@@ -143,6 +158,11 @@
         left join t_store store on detail.store_id = store.id
         left join t_spare_part_info spareinfo on spareinfo.id = detail.spare_id
         where form.id = #{id}
+    </select>-->
+    <select id="selectDetailList"  resultType="com.platform.dao.vo.query.store.OutStoreDetailVO">
+        select detail.*
+        from t_out_store_detail detail
+        where detail.out_id = #{id}
     </select>
 
     <select id="selectOutStoreList" parameterType="com.platform.dao.dto.store.OutStoreFormDTO"

+ 127 - 99
platform-rest/src/main/java/com/platform/rest/controller/store/OutStoreFormController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
 import lombok.AllArgsConstructor;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.rest.log.annotation.SysLog;
+
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
@@ -30,45 +31,72 @@ import javax.servlet.http.HttpServletResponse;
 @RequestMapping("/store/out-store-forms")
 public class OutStoreFormController {
 
-  private final  OutStoreFormService outStoreFormService;
-
-  /**
-   * 通过id查询单条记录
-   *
-   * @param id 主键
-   * @return R
-   */
-  @GetMapping("/{id}")
-  public R<OutStoreFormVO> getById(@PathVariable("id") String id){
-      return new R<>(outStoreFormService.getDetail(id));
-  }
-
-  /**
-   * 新增记录
-   *
-   * @param outStoreFormDTO 出库登记单DTO
-   * @return R
-   */
-  @SysLog("新增出库登记单")
-  @PostMapping
-  @PreAuthorize("@pms.hasPermission('store-out-store-forms-add')")
-  public R save(@Validated({AddGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
-      return new R<>(outStoreFormService.saveModelByDTO(outStoreFormDTO));
-  }
-
-  /**
-   * 修改记录
-   *
-   * @param outStoreFormDTO 出库登记单DTO
-   * @return R
-   */
-  @SysLog("修改出库登记单")
-  @PutMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('store-out-store-forms-edit')")
-  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
-      outStoreFormService.updateModelByDTO(outStoreFormDTO);
-      return new R<>();
-  }
+    private final OutStoreFormService outStoreFormService;
+
+    /**
+     * 通过id查询单条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/{id}")
+    public R<OutStoreFormVO> getById(@PathVariable("id") String id) {
+        return new R<>(outStoreFormService.getDetail(id));
+    }
+
+    /**
+     * 新增记录
+     *
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @SysLog("新增出库登记单")
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-add')")
+    public R save(@Validated({AddGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
+        return new R<>(outStoreFormService.saveModelByDTO(outStoreFormDTO));
+    }
+
+    /**
+     * 新增记录
+     *
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @SysLog("新增出库登记单")
+    @PostMapping("/yongyou")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-add')")
+    public R saveYongyou(@Validated({AddGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
+        return new R<>(outStoreFormService.saveModelByDTOYY(outStoreFormDTO));
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @SysLog("修改出库登记单")
+    @PutMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-edit')")
+    public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
+        outStoreFormService.updateModelByDTO(outStoreFormDTO);
+        return new R<>();
+    }
+
+    /**
+     * 修改记录
+     *
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @SysLog("修改出库登记单")
+    @PutMapping("/yongyou/{id}")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-edit')")
+    public R updateYY(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody OutStoreFormDTO outStoreFormDTO) {
+        outStoreFormService.updateModelByDTOYY(outStoreFormDTO);
+        return new R<>();
+    }
 
     /**
      * 提交出库
@@ -84,33 +112,33 @@ public class OutStoreFormController {
         return new R<>();
     }
 
-  /**
-   * 撤销出库
-   *
-   * @param id 出库登记单id
-   * @return R
-   */
-  @SysLog("修改出库登记单")
-  @PutMapping("/back/{id}")
-  @PreAuthorize("@pms.hasPermission('store-out-store-forms-edit')")
-  public R update2(@PathVariable("id") String id) {
-    outStoreFormService.pasteOutStore(id);
-    return new R<>();
-  }
-
-  /**
-   * 通过id删除一条记录
-   *
-   * @param id 主键
-   * @return R
-   */
-  @SysLog("删除出库登记单")
-  @DeleteMapping("/{id}")
-  @PreAuthorize("@pms.hasPermission('store-out-store-forms-del')")
-  public R removeById(@PathVariable String id){
-    outStoreFormService.cascadingDeleteByKey(id);
-    return new R<>();
-  }
+    /**
+     * 撤销出库
+     *
+     * @param id 出库登记单id
+     * @return R
+     */
+    @SysLog("修改出库登记单")
+    @PutMapping("/back/{id}")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-edit')")
+    public R update2(@PathVariable("id") String id) {
+        outStoreFormService.pasteOutStore(id);
+        return new R<>();
+    }
+
+    /**
+     * 通过id删除一条记录
+     *
+     * @param id 主键
+     * @return R
+     */
+    @SysLog("删除出库登记单")
+    @DeleteMapping("/{id}")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-del')")
+    public R removeById(@PathVariable String id) {
+        outStoreFormService.cascadingDeleteByKey(id);
+        return new R<>();
+    }
 
     /**
      * 批量记录
@@ -121,47 +149,47 @@ public class OutStoreFormController {
     @SysLog("批量删除出库登记单")
     @DeleteMapping("")
     @PreAuthorize("@pms.hasPermission('store-out-store-forms-del')")
-    public R removeIds(@RequestBody List<String> ids){
+    public R removeIds(@RequestBody List<String> ids) {
         outStoreFormService.batchDelete(ids);
         return new R<>();
     }
 
-  /**
-   * 获取分页
-   *
-   * @param pageNum 当前页码
-   * @param pageSize 每页条数
-   * @param outStoreFormDTO 出库登记单DTO
-   * @return R
-   */
-  @GetMapping("/page")
-  public R<AbstractPageResultBean<OutStoreFormVO>> query(OutStoreFormDTO outStoreFormDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
-      return new R<>(outStoreFormService.selectPageList(outStoreFormDTO, pageNum, pageSize));
-  }
-
-  /**
-   * 获取列表
-   *
-   * @param outStoreFormDTO 出库登记单DTO
-   * @return R
-   */
-  @GetMapping("")
-  public R query(OutStoreFormDTO outStoreFormDTO) {
-      return new R<>(outStoreFormService.getModelListByDTO(outStoreFormDTO));
-  }
-
-  /**
+    /**
+     * 获取分页
+     *
+     * @param pageNum         当前页码
+     * @param pageSize        每页条数
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @GetMapping("/page")
+    public R<AbstractPageResultBean<OutStoreFormVO>> query(OutStoreFormDTO outStoreFormDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(outStoreFormService.selectPageList(outStoreFormDTO, pageNum, pageSize));
+    }
+
+    /**
+     * 获取列表
+     *
+     * @param outStoreFormDTO 出库登记单DTO
+     * @return R
+     */
+    @GetMapping("")
+    public R query(OutStoreFormDTO outStoreFormDTO) {
+        return new R<>(outStoreFormService.getModelListByDTO(outStoreFormDTO));
+    }
+
+    /**
      * 出库登记单导出
      *
      * @param outStoreFormDTO 出库登记单DTO
      * @return R
      */
-  @GetMapping("/export")
-  @SysLog("出库登记单导出")
-  @PreAuthorize("@pms.hasPermission('store-out-store-forms-export')")
-  public void export(HttpServletResponse response, OutStoreFormDTO outStoreFormDTO) {
-    List<OutStoreForm> list = outStoreFormService.getModelListByDTO(outStoreFormDTO);
-    ExcelUtil.exportResponseDict(response, ExportOutStoreFormVO.class, BeanConverterUtil.copyListProperties(list, ExportOutStoreFormVO.class), "出库登记单");
-  }
+    @GetMapping("/export")
+    @SysLog("出库登记单导出")
+    @PreAuthorize("@pms.hasPermission('store-out-store-forms-export')")
+    public void export(HttpServletResponse response, OutStoreFormDTO outStoreFormDTO) {
+        List<OutStoreForm> list = outStoreFormService.getModelListByDTO(outStoreFormDTO);
+        ExcelUtil.exportResponseDict(response, ExportOutStoreFormVO.class, BeanConverterUtil.copyListProperties(list, ExportOutStoreFormVO.class), "出库登记单");
+    }
 
 }

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/store/SpareStoreController.java

@@ -142,7 +142,7 @@ public class SpareStoreController {
     }
 
     @GetMapping("/longyan/page")
-    public R<AbstractPageResultBean<SparePartInfoVO>> queryLongYan(SparePartInfoDTO sparePartInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+    public R<AbstractPageResultBean<SpareStoreVO>> queryLongYan(SpareStoreDTO sparePartInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
         // 备件库存
         return new R<>(spareStoreService.selectLongYanPageList(sparePartInfoDTO, pageNum, pageSize));
     }

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

@@ -8,6 +8,7 @@ import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 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.SparePickForm;
 import com.platform.dao.entity.store.SpareRestoreForm;
@@ -15,6 +16,7 @@ import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.store.ExportSparePickFormVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.SparePickFormVO;
+import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.store.SparePickFormService;
 import com.platform.service.yongyou.YongyouService;
@@ -42,14 +44,14 @@ public class YongyouController {
     /**
      * 查询用友存量分页数据
      *
-     * @param sparePartInfoDTO 备件查询条件DTO
+     * @param spareStoreDTO 备件查询条件DTO
      * @param pageNum          当前页码
      * @param pageSize         每页条数
      * @return R
      */
     @GetMapping("/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));
+    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));
     }
 
     /**

+ 3 - 1
platform-service/src/main/java/com/platform/service/store/OutStoreFormService.java

@@ -53,7 +53,7 @@ public interface OutStoreFormService extends IBaseService<OutStoreForm, OutStore
     OutStoreFormVO getDetail(Object id);
 
     void updateModelByDTO(OutStoreFormDTO model) ;
-
+  void updateModelByDTOYY(OutStoreFormDTO model) ;
     OutStoreForm saveModelByPickForm(SparePickFormDTO sparePickFormDTO, List<SparePickDetailVO> pickDetailList);
 
     void updateStore(String outStoreFormId);
@@ -65,4 +65,6 @@ public interface OutStoreFormService extends IBaseService<OutStoreForm, OutStore
     void saveModelByStoreCheckJob(List<StoreCheckJobVO> jobs);
     //撤销出库
     void pasteOutStore(String id);
+
+    OutStoreForm saveModelByDTOYY(OutStoreFormDTO outStoreFormDTO);
 }

+ 1 - 1
platform-service/src/main/java/com/platform/service/store/SpareStoreService.java

@@ -83,5 +83,5 @@ public interface SpareStoreService extends IBaseService<SpareStore, SpareStoreDT
      * @param pageSize
      * @return
      */
-    AbstractPageResultBean<SparePartInfoVO> selectLongYanPageList(SparePartInfoDTO record, int pageNum, int pageSize);
+    AbstractPageResultBean<SpareStoreVO> selectLongYanPageList(SpareStoreDTO record, int pageNum, int pageSize);
 }

+ 121 - 13
platform-service/src/main/java/com/platform/service/store/impl/OutStoreFormServiceImpl.java

@@ -19,6 +19,7 @@ import com.platform.dao.enums.*;
 import com.platform.dao.mapper.store.*;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.query.store.*;
+import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.service.event.WorkplaceBacklogEvent;
 import com.platform.service.store.InStoreFormService;
 import com.platform.service.store.OutStoreFormService;
@@ -98,10 +99,10 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         OutStoreFormVO outStoreFormVO = new OutStoreFormVO();
         BeanConverterUtil.copyObjectProperties(outStoreForm, outStoreFormVO);
         // 详情列表
-        if (StringUtils.isNotBlank(outStoreForm.getStoreId())) {
+      /*  if (StringUtils.isNotBlank(outStoreForm.getStoreId())) {
             Store store = storeService.getModelById(outStoreForm.getStoreId());
             outStoreFormVO.setStoreName(store.getName());
-        }
+        }*/
         outStoreFormVO.setDetailList(mapper.selectDetailList(id));
         return outStoreFormVO;
     }
@@ -154,6 +155,11 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         return true;
     }
 
+    /**
+     * 判断出库是否是同一个仓库,不是则提示不能提交,请改
+     * @param model
+     * @return
+     */
     @Override
     public OutStoreForm saveModelByDTO(OutStoreFormDTO model) {
         UserInfo userInfo = SecurityUtils.getUserInfo();
@@ -167,13 +173,13 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         OutStoreForm outStoreForm = super.saveModelByDTO(model);
         // 出库单详情
         List<OutStoreDetailDTO> detailList = model.getDetailList();
-
-        // 获取领用单详情
-        /*SparePickForm sparePickForm = null;
-        if(model.getType().equals(OutStoreTypeEnum.CHUKU_LINGYONG.getValue())){
-            sparePickForm = sparePickFormMapper.selectByPrimaryKey(model.getPickId());
-        }*/
-        BigDecimal totalPrice = new BigDecimal(0);
+        List<String> storeIds = detailList.stream().map(OutStoreDetailDTO::getStoreId).distinct().collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(storeIds)){
+            throw new BusinessException("请选择仓库备件");
+        }
+        if(storeIds.size()>1){
+            throw new BusinessException("请从同一个仓库选择备件");
+        }
 
         // 判断备件是否在该仓库里面,出库单已经勾选了仓库。这个不允许了,pc和移动端都不允许
         for (OutStoreDetailDTO detail : detailList) {
@@ -198,8 +204,6 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
             }
             // detail.setStoreId(outStoreForm.getStoreId());
             detail.setId(IdGeneratorUtils.getObjectId());
-            detail.setTotalPrice(detail.getNum().multiply(detail.getPrice()));
-            totalPrice = totalPrice.add(detail.getTotalPrice());
             detail.setOutNo(outStoreForm.getOutNo());
             OutStoreDetail storeDetail = new OutStoreDetail();
             BeanConverterUtil.copyObjectProperties(detail, storeDetail);
@@ -208,13 +212,52 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
             detailMapper.insertSelective(storeDetail);
 
         }
-        ;
-        outStoreForm.setTotalPrice(totalPrice);
         mapper.updateByPrimaryKey(outStoreForm);
         updateStore(outStoreForm.getId());
         return outStoreForm;
     }
 
+    /**
+     * 判断出库是否是同一个仓库,不是则提示不能提交,请改
+     * @param model
+     * @return
+     */
+    @Override
+    public OutStoreForm saveModelByDTOYY(OutStoreFormDTO model) {
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        Weekend<OutStoreForm> weekend = new Weekend<>(OutStoreForm.class);
+        weekend.weekendCriteria().andIsNotNull(OutStoreForm::getId);
+        Integer count = mapper.selectCountByExample(weekend);
+        model.setOutNo(IdGeneratorUtils.getOutStoreNo(++count));
+        model.setDelFlag(false);
+        model.setUserInfo(userInfo);
+        model.setStatus(OutStoreStatusEnum.NOT_EXECUTE.getValue());
+        // 出库单详情
+        List<OutStoreDetailDTO> detailList = model.getDetailList();
+        List<String> storeIds = detailList.stream().map(OutStoreDetailDTO::getStoreId).distinct().collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(storeIds)){
+            throw new BusinessException("请选择仓库备件");
+        }
+        if(storeIds.size()>1){
+            throw new BusinessException("请从同一个仓库选择备件");
+        }
+        model.setStoreId(detailList.get(0).getStoreId());
+        model.setStoreName(detailList.get(0).getStoreName());
+        OutStoreForm outStoreForm = super.saveModelByDTO(model);
+        // 插
+        for (OutStoreDetailDTO detail : detailList) {
+            detail.setUserInfo(userInfo);
+            detail.setOutId(outStoreForm.getId());
+            detail.setOutNo(outStoreForm.getOutNo());
+            OutStoreDetail storeDetail = new OutStoreDetail();
+            BeanConverterUtil.copyObjectProperties(detail, storeDetail);
+            storeDetail.setId(IdGeneratorUtils.getObjectId());
+            detailMapper.insertSelective(storeDetail);
+        }
+        // mapper.updateByPrimaryKey(outStoreForm);
+        return outStoreForm;
+    }
+
     /**
      * 更新出库单状态,更新库存信息,当仓库员点击确定后,领用时申请触发的出库单则自动出库
      * 在之前还没有出库
@@ -390,6 +433,71 @@ public class OutStoreFormServiceImpl extends BaseServiceImpl<OutStoreFormMapper,
         super.modModelByDTO(model);
     }
 
+    /**
+     * 更新和新增不涉及到库存,只有在提交动作更新库存,且提交后不能更改(不用回滚库存)
+     *
+     * @param model
+     */
+    @Override
+    public void updateModelByDTOYY(OutStoreFormDTO model) {
+
+        // 出库单详情
+        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)){
+            throw new BusinessException("请选择仓库备件");
+        }
+        if(storeIds.size()>1){
+            throw new BusinessException("请从同一个仓库选择备件");
+        }
+        // 先删后插,前端删除的不存在与ids里面,说明被删掉了,需要删除,同时要更新对应的库存
+        Weekend<OutStoreDetail> detailWeekend = new Weekend<>(OutStoreDetail.class);
+        List<String> ids = detailList.stream().map(OutStoreDetailDTO::getId).collect(Collectors.toList());
+        detailWeekend.weekendCriteria().andNotIn(OutStoreDetail::getId, ids).andEqualTo(OutStoreDetail::getOutId, model.getId());
+        detailMapper.deleteByExample(detailWeekend);
+
+        // 更新和新增
+        List<OutStoreDetail> updateDetailList = new ArrayList<OutStoreDetail>();
+        List<OutStoreDetail> addDetailList = new ArrayList<OutStoreDetail>();
+
+        BigDecimal totalPrice = new BigDecimal(0);
+        // 新增
+        for (OutStoreDetailDTO detail : detailList) {
+            OutStoreDetail realDetail = detailMapper.selectByPrimaryKey(detail.getId());
+            if (ObjectUtil.isNull(realDetail)) {
+                detail.setUserInfo(userInfo);
+                detail.setOutId(model.getId());
+                if (StringUtils.isNotBlank(model.getStoreId())) {
+                    detail.setStoreId(model.getStoreId());
+                }
+                //detail.setStoreId(model.getStoreId());
+                detail.setOutNo(model.getOutNo());
+                OutStoreDetail storeDetail = new OutStoreDetail();
+                BeanConverterUtil.copyObjectProperties(detail, storeDetail);
+                storeDetail.setId(IdGeneratorUtils.getObjectId());
+                addDetailList.add(storeDetail);
+            } else {// 修改数量的
+                detail.setTotalPrice(detail.getNum().multiply(detail.getPrice()));
+                totalPrice = totalPrice.add(detail.getTotalPrice());
+                OutStoreDetail storeDetail = new OutStoreDetail();
+                BeanConverterUtil.copyObjectProperties(detail, storeDetail);
+                updateDetailList.add(storeDetail);
+            }
+        }
+        ;
+
+        if (!CollectionUtils.isEmpty(addDetailList)) {
+            detailMapper.insertListforComplex(addDetailList);
+        }
+        if (!CollectionUtils.isEmpty(updateDetailList)) {
+            detailMapper.updateBatch(updateDetailList);
+        }
+        // 更新
+        model.setUpdateTime(LocalDateTime.now());
+        super.modModelByDTO(model);
+    }
+
     /**
      * 领用直接生成出库单,但是出库单未提交,不修改实际库存
      *

+ 1 - 1
platform-service/src/main/java/com/platform/service/store/impl/SpareStoreServiceImpl.java

@@ -407,7 +407,7 @@ public class SpareStoreServiceImpl extends BaseServiceImpl<SpareStoreMapper, Spa
     }
 
     @Override
-    public AbstractPageResultBean<SparePartInfoVO> selectLongYanPageList(SparePartInfoDTO record, int pageNum, int pageSize) {
+    public AbstractPageResultBean<SpareStoreVO> selectLongYanPageList(SpareStoreDTO record, int pageNum, int pageSize) {
         // 1、是否是关联备件的获取
         if(record.getIsSpecial() != null && record.getIsSpecial() == 1){
             PageHelper.startPage(pageNum, pageSize);

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

@@ -4,10 +4,12 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 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.SparePickForm;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.SparePickFormVO;
+import com.platform.dao.vo.query.store.SpareStoreVO;
 import com.platform.service.base.IBaseService;
 
 import java.util.List;
@@ -28,7 +30,7 @@ public interface YongyouService {
      * @param pageSize
      * @return
      */
-    AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize);
+    AbstractPageResultBean<SpareStoreVO> selectPageList(SpareStoreDTO record, int pageNum, int pageSize);
 
     /**
      * 出库单发起用友

+ 21 - 16
platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

@@ -18,16 +18,14 @@ import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 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.store.*;
 import com.platform.dao.enums.SparePickFormStatusEnum;
 import com.platform.dao.mapper.sqarepartmanage.SparePartInfoMapper;
 import com.platform.dao.mapper.store.SparePickDetailMapper;
 import com.platform.dao.mapper.store.SparePickFormMapper;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
-import com.platform.dao.vo.query.store.SparePickDetailVO;
-import com.platform.dao.vo.query.store.SparePickFormVO;
-import com.platform.dao.vo.query.store.SpareRestoreDetailVO;
-import com.platform.dao.vo.query.store.SpareRestoreFormVO;
+import com.platform.dao.vo.query.store.*;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.store.*;
 import com.platform.service.yongyou.YongyouService;
@@ -93,9 +91,9 @@ public class YongyouServiceImpl implements YongyouService {
         LoginResponse response = JSONObject.parseObject(responseStr, LoginResponse.class);
         Login login = response.getData();
         String token = login.getToken();
-        RedisUtils.setString(token_key, token);
-        RedisUtils.setString(Conn_key, login.getConn());
-        RedisUtils.setString(cAcc_ID_key, login.getCAcc_ID());
+        RedisUtils.setString(token_key, token, 1800);
+        RedisUtils.setString(Conn_key, login.getConn(), 1800);
+        RedisUtils.setString(cAcc_ID_key, login.getCAcc_ID(), 1800);
         return token;
     }
 
@@ -115,7 +113,7 @@ public class YongyouServiceImpl implements YongyouService {
      * @return
      */
     @Override
-    public AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize) {
+    public AbstractPageResultBean<SpareStoreVO> selectPageList(SpareStoreDTO record, int pageNum, int pageSize) {
         // 已生成情况,直接推送
         GetCurrentStockHandler handler = new GetCurrentStockHandler();
         GetCurrentStockRequest req = new GetCurrentStockRequest();
@@ -128,25 +126,32 @@ public class YongyouServiceImpl implements YongyouService {
         handler.setRequest(req);
         String responseStr = handler.handler();
         GetCurrentStockResponse response = JSONObject.parseObject(responseStr, GetCurrentStockResponse.class);
-        List<GetCurrentStock> datas = response.getData();
-        List<SparePartInfoVO> partInfoVOS = new ArrayList<>();
-        for (GetCurrentStock stockResponse : datas) {
-            SparePartInfoVO partInfoVO = new SparePartInfoVO();
+        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.getPartId() + "");
-            partInfoVO.setName(stockResponse.getCInvName());
+            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());
             partInfoVOS.add(partInfoVO);
         }
 
         PageHelper.startPage(pageNum, pageSize);
-        MyVOPage<SparePartInfoVO> myVOPage = new MyVOPage<>();
+        MyVOPage<SpareStoreVO> myVOPage = new MyVOPage<>();
         myVOPage.setPageNum(pageNum);
         myVOPage.setPageSize(pageSize);
         Page page = new Page(pageNum, pageSize);
         page.setTotal(322);
-        //page.setTotal(response.getTotal());
-        myVOPage.setPages(page.getPages());
+        page.setTotal(data.getTotal());
+        myVOPage.setPages(data.getPages().intValue());
         myVOPage.setTotal(page.getTotal());
         myVOPage.setRows(partInfoVOS);
         return myVOPage;