hfxc226 преди 2 години
родител
ревизия
99209ea701
променени са 42 файла, в които са добавени 1078 реда и са изтрити 184 реда
  1. 1 5
      platform-common/src/main/java/com/platform/common/yongyou/request/BaseRequest.java
  2. 3 1
      platform-common/src/main/java/com/platform/common/yongyou/request/GetCurrentStockRequest.java
  3. 1 1
      platform-common/src/main/java/com/platform/common/yongyou/request/LoginRequest.java
  4. 15 0
      platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutAddRequest.java
  5. 74 0
      platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutDetail.java
  6. 38 0
      platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutMain.java
  7. 10 0
      platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutVouch.java
  8. 1 3
      platform-common/src/main/java/com/platform/common/yongyou/response/BaseResponse.java
  9. 67 0
      platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStock.java
  10. 5 53
      platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java
  11. 14 0
      platform-common/src/main/java/com/platform/common/yongyou/response/Login.java
  12. 2 4
      platform-common/src/main/java/com/platform/common/yongyou/response/LoginResponse.java
  13. 12 0
      platform-common/src/main/java/com/platform/common/yongyou/response/OtherOutAddResponse.java
  14. 16 0
      platform-dao/src/main/java/com/platform/dao/dto/store/SparePickDetailDTO.java
  15. 4 0
      platform-dao/src/main/java/com/platform/dao/dto/store/SparePickFormDTO.java
  16. 17 0
      platform-dao/src/main/java/com/platform/dao/dto/store/SpareRestoreDetailDTO.java
  17. 4 0
      platform-dao/src/main/java/com/platform/dao/dto/store/SpareRestoreFormDTO.java
  18. 16 0
      platform-dao/src/main/java/com/platform/dao/entity/store/SparePickDetail.java
  19. 4 0
      platform-dao/src/main/java/com/platform/dao/entity/store/SparePickForm.java
  20. 3 1
      platform-dao/src/main/java/com/platform/dao/entity/store/SpareRecoveryDetail.java
  21. 18 1
      platform-dao/src/main/java/com/platform/dao/entity/store/SpareRestoreDetail.java
  22. 4 0
      platform-dao/src/main/java/com/platform/dao/entity/store/SpareRestoreForm.java
  23. 2 1
      platform-dao/src/main/java/com/platform/dao/entity/store/SpareStoreSecond.java
  24. 16 4
      platform-dao/src/main/java/com/platform/dao/vo/query/store/SparePickDetailVO.java
  25. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/SparePickFormVO.java
  26. 18 6
      platform-dao/src/main/java/com/platform/dao/vo/query/store/SpareRestoreDetailVO.java
  27. 4 0
      platform-dao/src/main/java/com/platform/dao/vo/query/store/SpareRestoreFormVO.java
  28. 4 0
      platform-dao/src/main/resources/mapper/store/SparePickDetailMapper.xml
  29. 1 0
      platform-dao/src/main/resources/mapper/store/SparePickFormMapper.xml
  30. 37 33
      platform-dao/src/main/resources/mapper/store/SpareRestoreDetailMapper.xml
  31. 49 48
      platform-dao/src/main/resources/mapper/store/SpareRestoreFormMapper.xml
  32. 108 0
      platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java
  33. 17 6
      platform-service/src/main/java/com/platform/service/store/SparePickFormService.java
  34. 11 7
      platform-service/src/main/java/com/platform/service/store/SpareRestoreFormService.java
  35. 11 0
      platform-service/src/main/java/com/platform/service/store/impl/SparePickFormServiceImpl.java
  36. 15 3
      platform-service/src/main/java/com/platform/service/store/impl/SpareRestoreFormServiceImpl.java
  37. 62 0
      platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java
  38. 300 0
      platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java
  39. 5 7
      platform-service/src/main/java/handler/yongyou/BaseRequestHandler.java
  40. 23 0
      platform-service/src/main/java/handler/yongyou/GetCurrentStockHandler.java
  41. 27 0
      platform-service/src/main/java/handler/yongyou/LoginHandler.java
  42. 35 0
      platform-service/src/main/java/handler/yongyou/OtherOutHandler.java

+ 1 - 5
platform-common/src/main/java/com/platform/common/yongyou/request/BaseRequest.java

@@ -7,15 +7,11 @@ import lombok.Data;
 import java.io.Serializable;
 
 @Data
-public class BaseRequest<T> implements Serializable {
+public class BaseRequest implements Serializable {
 
     /**
      * token
      */
     private String token;
 
-    /**
-     * 业务参数体  JSON_OBJECT
-     */
-    private T body;
 }

+ 3 - 1
platform-common/src/main/java/com/platform/common/yongyou/request/GetCurrentStockRequest.java

@@ -6,10 +6,12 @@ import lombok.Data;
  * 现存量查询
  */
 @Data
-public class GetCurrentStockRequest {
+public class GetCurrentStockRequest extends BaseRequest{
     private String token;
     private String Conn;
     private String cAcc_ID;// 账套号
+    private Integer pageSize;// 第几页
+    private Integer pageNum;// 页数量
     private String stcWhere;// 查询条件 cInvCode in('0341' ,'0301')
 
 }

+ 1 - 1
platform-common/src/main/java/com/platform/common/yongyou/request/LoginRequest.java

@@ -8,7 +8,7 @@ import lombok.Data;
  * http://localhost:44333/api/v1.0/user/login
  */
 @Data
-public class LoginRequest {
+public class LoginRequest extends BaseRequest{
     private String CSrv;
     private String PUserId;
     private String PPassword;

+ 15 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutAddRequest.java

@@ -0,0 +1,15 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class OtherOutAddRequest extends BaseRequest{
+    private String token;
+    private String Conn;
+    private String cAcc_ID;// 账套号
+    private OtherOutVouch otherOutVouch;// 查询条件 cInvCode in('0341' ,'0301')
+
+}

+ 74 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutDetail.java

@@ -0,0 +1,74 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OtherOutDetail {
+    private String id;// 1000000305, //主表ID
+    private String cinvcode;// "SJZB01", //存货编码
+    private String cfree1;// null, //存货自由项1
+    private String cfree2;// null, //存货自由项2
+    private String cfree3;// null, //存货自由项3
+    private String cfree4;// null, //存货自由项4
+    private String cfree5;// null, //存货自由项5
+    private String cfree6;// null, //存货自由项6
+    private String cfree7;// null, //存货自由项7
+    private String cfree8;// null, //存货自由项8
+    private String cfree9;// null, //存货自由项9
+    private String cfree10;// null, //存货自由项10
+    private String cbatch;// null, //批号
+    private String cassunit;// null, //辅计量单位编码
+    private String inum;// null, //件数
+    private String iinvexchrate;// null, //换算率
+    private BigDecimal iquantity;// 1, //数量
+    private BigDecimal iunitcost;// 101.18, //单价
+    private BigDecimal iprice;// 101.18, //金额
+    private String cposition;// null, //货位编码
+    private String autoid;// 1000000766, //子表ID
+    private String cdefine22;// null, //表体自定义项1
+    private String cdefine23;// null, //表体自定义项2
+    private String cdefine24;// null, //表体自定义项3
+    private String cdefine25;// null, //表体自定义项4
+    private String cdefine26;// null, //表体自定义项5
+    private String cdefine27;// null, //表体自定义项6
+    private String cdefine28;// null, //表体自定义项7
+    private String cdefine29;// null, //表体自定义项8
+    private String cdefine30;// null, //表体自定义项9
+    private String cdefine31;// null, //表体自定义项10
+    private String cdefine32;// null, //表体自定义项11
+    private String cdefine33;// null, //表体自定义项12
+    private String cdefine34;// null, //表体自定义项13
+    private String cdefine35;// null, //表体自定义项14
+    private String cdefine36;// null, //表体自定义项15
+    private String cdefine37;// null, //表体自定义项16
+    private String itrids;// null, //库存调拨单子表id
+    private String bcosting;// true, //单据是否核算
+    private String cbatchproperty1;// null, //批次属性1
+    private String cbatchproperty2;// null, //批次属性2
+    private String cbatchproperty3;// null, //批次属性3
+    private String cbatchproperty4;// null, //批次属性4
+    private String cbatchproperty5;// null, //批次属性5
+    private String cbatchproperty6;// null, //批次属性6
+    private String cbatchproperty7;// null, //批次属性7
+    private String cbatchproperty8;// null, //批次属性8
+    private String cbatchproperty9;// null, //批次属性9
+    private String cbatchproperty10;// null, //批次属性10
+    private String cbmemo;// null, //表体备注
+    private String irowno;// 1, //行号
+    private String iposflag;// null, //是否货位管理
+    private String cexpirationdate;// "",
+
+    private String cmassunit;// null,
+
+    private String dmadedate;// null,
+
+    private String dexpirationdate;// null,
+
+    private String iexpiratdatecalcu;// "",
+
+    private String imassdate;// null,
+
+    private String dvdate;// null
+}

+ 38 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutMain.java

@@ -0,0 +1,38 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+@Data
+public class OtherOutMain {
+    private Integer id; //主表ID1000000305
+    private Integer brdflag; //收发标志,默认 00
+    private String cvouchtype; //单据类型,默认 09"09"
+    private String cbustype; //业务类型,默认 其他出库"其他出库"
+    private String cwhcode; //仓库编码"34"
+    private String ddate; //单据日期"2015-01-06 00:00:00"
+    private String vt_id; //单据模板号85
+    private Boolean bisstqc; //库存期初标志false
+    private String ccode; //单据编号"0000000006"
+    private String crdcode; //收发类别编码 "2a"
+    private String cdepcode; //部门编码null
+    private String cpersoncode; //人员编码null
+    private String cmemo; //表头备注null
+    private String cmaker; //制单人"demo"
+    private String cdefine1; //表头自定义项1null
+    private String cdefine2; //表头自定义项2null
+    private String cdefine3; //表头自定义项3null
+    private String cdefine4; //表头自定义项4null
+    private String cdefine5; //表头自定义项5null
+    private String cdefine6; //表头自定义项6null
+    private String cdefine7; //表头自定义项7null
+    private String cdefine8; //表头自定义项8
+    private String cdefine9; // //表头自定义项9null
+    private String cdefine10; // //表头自定义项10
+    private String cdefine11; // //表头自定义项11
+    private String cdefine12; // //表头自定义项12
+    private String cdefine13; // //表头自定义项13
+    private String cdefine14; // //表头自定义项14
+    private String cdefine15; // //表头自定义项15
+    private String cdefine16; // //表头自定义项16
+    private String csource;  //单据来源,默认 库存"库存"
+}

+ 10 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/OtherOutVouch.java

@@ -0,0 +1,10 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class OtherOutVouch {
+    private OtherOutMain OtherOutMain;
+    private List<OtherOutDetail> OtherOutDetail;
+}

+ 1 - 3
platform-common/src/main/java/com/platform/common/yongyou/response/BaseResponse.java

@@ -8,9 +8,7 @@ import java.io.Serializable;
  * 查询响应
  */
 @Data
-public class BaseResponse<T> implements Serializable {
-
+public class BaseResponse implements Serializable {
     private String result;
     private String msg;
-    private T body;
 }

+ 67 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStock.java

@@ -0,0 +1,67 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+;//
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class GetCurrentStock extends BaseResponse{
+    private Integer PartId; ;// ;//  partid 86
+    private String cWhCode; ;// 仓库编码 "03"
+    private String cWhName; ;// 仓库名称 "半成品库"
+    private String cInvCode; ;// 存货编码"01019002069"
+    private String cInvName; ;// 存货名称"电源"
+    private String cInvStd; ;// 规格型号 "亿泰鑫 2U/550W/冗余电源/550W-E-102"
+    private String cInvAddCode; ;// 存货代码null
+    private String cComUnitName; ;// 主计量单位 "PCS"
+    private String cBatch; ;// 批号null
+    private BigDecimal iQuantity; ;// 数量-50,
+    private BigDecimal iNum; ;// 件数0
+    private String cFree1; ;// 自由项1
+    private String cFree2; ;// 自由项2
+    private BigDecimal fOutQuantity; ;// 待发货数量0
+    private BigDecimal fOutNum; ;// 待发货辅计量数量0
+    private BigDecimal fInQuantity; ;// 待入库数量50
+    private BigDecimal fInNum; ;// 待入库辅计量数量0
+    private String cFree3; ;// 自由项3
+    private String cFree4; ;// 自由项
+    private String cFree5; ;// 自由项
+    private String cFree6; ;// 自由项
+    private String cFree7; ;// 自由项
+    private String cFree8; ;// 自由项
+    private String cFree9; ;// 自由项
+    private String cFree10; ;// 自由项
+    private LocalDate dVDate; ;// 失效日期null
+    private Boolean bStopFlag; ;// 库存是否冻结false
+    private BigDecimal fTransInQuantity; ;// 调拨在途数量0
+    private LocalDate dMdate; ;// 生产日期 null
+    private BigDecimal fTransInNum; ;// 调拨在途辅计量数0
+    private BigDecimal fTransOutQuantity; ;// 调拨待发数量0
+    private BigDecimal fTransOutNum; ;// 调拨待发辅计量数量0
+    private Integer iMassDate; ;// 保质期天数null
+    private String cMassUnit; ;// 保质期单位null
+    private String fStopQuantity; ;// 冻结数量0
+    private String fStopNum; ;// 冻结件数0
+    private LocalDate dLastYearCheckDate; ;// 最后检验日期null
+    private LocalDate iExpiratDateCalcu; ;// 有效期推算方式null
+    private String cExpirationdate; ;// 有效期至null
+    private String dExpirationdate; ;// 有效期计算项null
+    private BigDecimal ipeqty; ;// pe预留数量0
+    private BigDecimal ipenum; ;// pe预留件数0
+    private String cBatchProperty1; ;// 批次属性1
+    private String cBatchProperty2; ;// 批次属性
+    private String cBatchProperty3; ;// 批次属性
+    private String cBatchProperty4; ;// 批次属性
+    private String cBatchProperty5; ;// 批次属性
+    private String cBatchProperty6; ;// 批次属性
+    private String cBatchProperty7; ;// 批次属性
+    private String cBatchProperty8; ;// 批次属性
+    private String cBatchProperty9; ;// 批次属性
+    private String cBatchProperty10; ;// 批次属性
+}

+ 5 - 53
platform-common/src/main/java/com/platform/common/yongyou/response/GetCurrentStockResponse.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.List;
 
 ;//
 
@@ -12,57 +13,8 @@ import java.time.LocalDate;
  * 现存量查询响应
  */
 @Data
-public class GetCurrentStockResponse {
-    private Integer PartId; ;// ;//  partid 86
-    private String cWhCode; ;// 仓库编码 "03"
-    private String cWhName; ;// 仓库名称 "半成品库"
-    private String cInvCode; ;// 存货编码"01019002069"
-    private String cInvName; ;// 存货名称"电源"
-    private String cInvStd; ;// 规格型号 "亿泰鑫 2U/550W/冗余电源/550W-E-102"
-    private String cInvAddCode; ;// 存货代码null
-    private String cComUnitName; ;// 主计量单位 "PCS"
-    private String cBatch; ;// 批号null
-    private BigDecimal iQuantity; ;// 数量-50,
-    private BigDecimal iNum; ;// 件数0
-    private String cFree1; ;// 自由项1
-    private String cFree2; ;// 自由项2
-    private BigDecimal fOutQuantity; ;// 待发货数量0
-    private BigDecimal fOutNum; ;// 待发货辅计量数量0
-    private BigDecimal fInQuantity; ;// 待入库数量50
-    private BigDecimal fInNum; ;// 待入库辅计量数量0
-    private String cFree3; ;// 自由项3
-    private String cFree4; ;// 自由项
-    private String cFree5; ;// 自由项
-    private String cFree6; ;// 自由项
-    private String cFree7; ;// 自由项
-    private String cFree8; ;// 自由项
-    private String cFree9; ;// 自由项
-    private String cFree10; ;// 自由项
-    private LocalDate dVDate; ;// 失效日期null
-    private Boolean bStopFlag; ;// 库存是否冻结false
-    private BigDecimal fTransInQuantity; ;// 调拨在途数量0
-    private LocalDate dMdate; ;// 生产日期 null
-    private BigDecimal fTransInNum; ;// 调拨在途辅计量数0
-    private BigDecimal fTransOutQuantity; ;// 调拨待发数量0
-    private BigDecimal fTransOutNum; ;// 调拨待发辅计量数量0
-    private Integer iMassDate; ;// 保质期天数null
-    private String cMassUnit; ;// 保质期单位null
-    private String fStopQuantity; ;// 冻结数量0
-    private String fStopNum; ;// 冻结件数0
-    private LocalDate dLastYearCheckDate; ;// 最后检验日期null
-    private LocalDate iExpiratDateCalcu; ;// 有效期推算方式null
-    private String cExpirationdate; ;// 有效期至null
-    private String dExpirationdate; ;// 有效期计算项null
-    private BigDecimal ipeqty; ;// pe预留数量0
-    private BigDecimal ipenum; ;// pe预留件数0
-    private String cBatchProperty1; ;// 批次属性1
-    private String cBatchProperty2; ;// 批次属性
-    private String cBatchProperty3; ;// 批次属性
-    private String cBatchProperty4; ;// 批次属性
-    private String cBatchProperty5; ;// 批次属性
-    private String cBatchProperty6; ;// 批次属性
-    private String cBatchProperty7; ;// 批次属性
-    private String cBatchProperty8; ;// 批次属性
-    private String cBatchProperty9; ;// 批次属性
-    private String cBatchProperty10; ;// 批次属性
+public class GetCurrentStockResponse extends BaseResponse{
+    Integer totalNum;// 总数
+    Integer total;// 总页数
+    List<GetCurrentStock> data;
 }

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

@@ -0,0 +1,14 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class Login extends BaseResponse{
+    private String cAcc_ID;
+    private String Conn;
+    private String Token;
+
+}

+ 2 - 4
platform-common/src/main/java/com/platform/common/yongyou/response/LoginResponse.java

@@ -6,9 +6,7 @@ import lombok.Data;
  * 现存量查询响应
  */
 @Data
-public class LoginResponse {
-    private String cAcc_ID;
-    private String Conn;
-    private String Token;
+public class LoginResponse extends BaseResponse{
+    private Login data;
 
 }

+ 12 - 0
platform-common/src/main/java/com/platform/common/yongyou/response/OtherOutAddResponse.java

@@ -0,0 +1,12 @@
+package com.platform.common.yongyou.response;
+
+import com.platform.common.yongyou.request.OtherOutVouch;
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class OtherOutAddResponse extends BaseResponse{
+    private String data;
+}

+ 16 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/SparePickDetailDTO.java

@@ -59,6 +59,22 @@ public class SparePickDetailDTO extends BaseDTO implements Serializable {
      * 备件id
      */
     private String spareId;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 领用数量
      */

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

@@ -30,6 +30,10 @@ public class SparePickFormDTO extends BaseDTO implements Serializable {
      */
     @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 仓库id
      */

+ 17 - 0
platform-dao/src/main/java/com/platform/dao/dto/store/SpareRestoreDetailDTO.java

@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -42,6 +43,22 @@ public class SpareRestoreDetailDTO extends BaseDTO implements Serializable {
      * 退库数量
      */
     private Integer num;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 创建人
      */

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

@@ -27,6 +27,10 @@ public class SpareRestoreFormDTO extends BaseDTO implements Serializable {
      */
     @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 退库单号
      */

+ 16 - 0
platform-dao/src/main/java/com/platform/dao/entity/store/SparePickDetail.java

@@ -44,6 +44,22 @@ public class SparePickDetail implements Serializable{
      * 备件id
      */
     private String spareId;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 领用数量
      */

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

@@ -28,6 +28,10 @@ public class SparePickForm implements Serializable{
      */
         @Id
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 仓库id
      */

+ 3 - 1
platform-dao/src/main/java/com/platform/dao/entity/store/SpareRecoveryDetail.java

@@ -8,6 +8,7 @@ import javax.persistence.Id;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -26,6 +27,7 @@ public class SpareRecoveryDetail implements Serializable{
      */
         @Id
     private String id;
+
     /**
      * 回收单id
      */
@@ -45,7 +47,7 @@ public class SpareRecoveryDetail implements Serializable{
     /**
      * 回收数量
      */
-    private Integer num;
+    private BigDecimal num;
     /**
      * 创建人
      */

+ 18 - 1
platform-dao/src/main/java/com/platform/dao/entity/store/SpareRestoreDetail.java

@@ -8,6 +8,7 @@ import javax.persistence.Id;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -41,7 +42,23 @@ public class SpareRestoreDetail implements Serializable{
     /**
      * 退库数量
      */
-    private Integer num;
+    private BigDecimal num;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 创建人
      */

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

@@ -26,6 +26,10 @@ public class SpareRestoreForm implements Serializable{
      */
         @Id
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 退库单号
      */

+ 2 - 1
platform-dao/src/main/java/com/platform/dao/entity/store/SpareStoreSecond.java

@@ -8,6 +8,7 @@ import javax.persistence.Id;
 import javax.persistence.Table;
 import javax.persistence.Transient;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -45,7 +46,7 @@ public class SpareStoreSecond implements Serializable {
     /**
      * 可用总数量
      */
-    private Integer totalNum;
+    private BigDecimal totalNum;
     /**
      * 排序
      */

+ 16 - 4
platform-dao/src/main/java/com/platform/dao/vo/query/store/SparePickDetailVO.java

@@ -57,6 +57,22 @@ public class SparePickDetailVO extends BaseVO implements Serializable {
      * 备件id
      */
     private String spareId;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 领用数量
      */
@@ -105,10 +121,6 @@ public class SparePickDetailVO extends BaseVO implements Serializable {
      * 仓库名称
      */
     private String storeName;
-    /**
-     * 备件名称
-     */
-    private String spareName;
 
     /**
      * 备件类型名称

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

@@ -30,6 +30,10 @@ public class SparePickFormVO extends BaseVO implements Serializable {
      * 主键
      */
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 领用单号
      */

+ 18 - 6
platform-dao/src/main/java/com/platform/dao/vo/query/store/SpareRestoreDetailVO.java

@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -38,7 +39,23 @@ public class SpareRestoreDetailVO extends BaseVO implements Serializable {
     /**
      * 退库数量
      */
-    private Integer num;
+    private BigDecimal num;
+    /**
+     * 主键:用友出库单id
+     */
+    private String yyId;
+    /**
+     * 备件名称
+     */
+    private String spareName;
+    /**
+     * 备件规则型号
+     */
+    private String spareGgxh;
+    /**
+     * 申请数量:num为用友实际出库数量
+     */
+    private BigDecimal applyNum;
     /**
      * 创建人
      */
@@ -63,10 +80,5 @@ public class SpareRestoreDetailVO extends BaseVO implements Serializable {
      * 更新日期
      */
     private LocalDateTime updateTime;
-    /**
-     * 备件名称
-     */
-    private String spareName;
-
 
 }

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

@@ -24,6 +24,10 @@ public class SpareRestoreFormVO extends BaseVO implements Serializable {
      * 主键
      */
     private String id;
+    /**
+     * 用友出库单id
+     */
+    private String yyId;
     /**
      * 退库单号
      */

+ 4 - 0
platform-dao/src/main/resources/mapper/store/SparePickDetailMapper.xml

@@ -3,6 +3,10 @@
 <mapper namespace="com.platform.dao.mapper.store.SparePickDetailMapper">
     <sql id="Base_Column_List">
                              sparepickdetail.id,
+                             sparepickdetail.yy_id,
+                             sparepickdetail.spare_name,
+                             sparepickdetail.spare_ggxh,
+                             sparepickdetail.apply_num,
                                      sparepickdetail.pick_id,
                                      sparepickdetail.pick_no,
                                      sparepickdetail.spare_id,

+ 1 - 0
platform-dao/src/main/resources/mapper/store/SparePickFormMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.platform.dao.mapper.store.SparePickFormMapper">
     <sql id="Base_Column_List">
                              sparepickform.id,
+                             sparepickform.yy_id,
                                      sparepickform.pick_no,
                                      sparepickform.type,
                                      sparepickform.store_id,

+ 37 - 33
platform-dao/src/main/resources/mapper/store/SpareRestoreDetailMapper.xml

@@ -2,78 +2,82 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.dao.mapper.store.SpareRestoreDetailMapper">
     <sql id="Base_Column_List">
-                             sparepickdetail.id,
-                                     sparepickdetail.pick_id,
-                                     sparepickdetail.pick_no,
-                                     sparepickdetail.spare_id,
-                                     sparepickdetail.num,
-                                     sparepickdetail.created_user_id,
-                                     sparepickdetail.created_user_name,
-                                     sparepickdetail.update_user_id,
-                                     sparepickdetail.update_user_name,
-                                     sparepickdetail.created_time,
-                                     sparepickdetail.update_time
+                             sparerestoredetail.id,
+                             sparerestoredetail.yy_id,
+                             sparerestoredetail.spare_name,
+                             sparerestoredetail.spare_ggxh,
+                             sparerestoredetail.apply_num,
+                                     sparerestoredetail.pick_id,
+                                     sparerestoredetail.pick_no,
+                                     sparerestoredetail.spare_id,
+                                     sparerestoredetail.num,
+                                     sparerestoredetail.created_user_id,
+                                     sparerestoredetail.created_user_name,
+                                     sparerestoredetail.update_user_id,
+                                     sparerestoredetail.update_user_name,
+                                     sparerestoredetail.created_time,
+                                     sparerestoredetail.update_time
                         </sql>
     <sql id="Ref_Column_List">
-                                                                         sparepickdetail.pick_id,
-                                     sparepickdetail.pick_no,
-                                     sparepickdetail.spare_id,
-                                     sparepickdetail.num,
+                                                                         sparerestoredetail.pick_id,
+                                     sparerestoredetail.pick_no,
+                                     sparerestoredetail.spare_id,
+                                     sparerestoredetail.num,
                                                                                                                                                                                                                                                                                                 </sql>
     <sql id="List_Condition">
         <if test="id != null and id != ''">
-            and sparepickdetail.id = #{id}
+            and sparerestoredetail.id = #{id}
         </if>
         <if test="pickId != null and pickId != ''">
-            and sparepickdetail.pick_id = #{pickId}
+            and sparerestoredetail.pick_id = #{pickId}
         </if>
         <if test="pickNo != null and pickNo != ''">
-            and sparepickdetail.pick_no = #{pickNo}
+            and sparerestoredetail.pick_no = #{pickNo}
         </if>
         <if test="spareId != null and spareId != ''">
-            and sparepickdetail.spare_id = #{spareId}
+            and sparerestoredetail.spare_id = #{spareId}
         </if>
         <if test="num != null">
-            and sparepickdetail.num = #{num}
+            and sparerestoredetail.num = #{num}
         </if>
         <if test="createdUserId != null and createdUserId != ''">
-            and sparepickdetail.created_user_id = #{createdUserId}
+            and sparerestoredetail.created_user_id = #{createdUserId}
         </if>
         <if test="createdUserName != null and createdUserName != ''">
-            and sparepickdetail.created_user_name = #{createdUserName}
+            and sparerestoredetail.created_user_name = #{createdUserName}
         </if>
         <if test="updateUserId != null and updateUserId != ''">
-            and sparepickdetail.update_user_id = #{updateUserId}
+            and sparerestoredetail.update_user_id = #{updateUserId}
         </if>
         <if test="updateUserName != null and updateUserName != ''">
-            and sparepickdetail.update_user_name = #{updateUserName}
+            and sparerestoredetail.update_user_name = #{updateUserName}
         </if>
         <if test="createdTimeStart != null">
-            and sparepickdetail.created_time <![CDATA[>=]]>; #{createdTimeStart}
+            and sparerestoredetail.created_time <![CDATA[>=]]>; #{createdTimeStart}
         </if>
         <if test="createdTimeEnd != null">
-            and sparepickdetail.created_time <![CDATA[<=]]> #{createdTimeEnd}
+            and sparerestoredetail.created_time <![CDATA[<=]]> #{createdTimeEnd}
         </if>
         <if test="createdTime != null">
-            and sparepickdetail.created_time = #{createdTime}
+            and sparerestoredetail.created_time = #{createdTime}
         </if>
         <if test="updateTimeStart != null">
-            and sparepickdetail.update_time <![CDATA[>=]]>; #{updateTimeStart}
+            and sparerestoredetail.update_time <![CDATA[>=]]>; #{updateTimeStart}
         </if>
         <if test="updateTimeEnd != null">
-            and sparepickdetail.update_time <![CDATA[<=]]> #{updateTimeEnd}
+            and sparerestoredetail.update_time <![CDATA[<=]]> #{updateTimeEnd}
         </if>
         <if test="updateTime != null">
-            and sparepickdetail.update_time = #{updateTime}
+            and sparerestoredetail.update_time = #{updateTime}
         </if>
         <if test="keyword != null and keyword != ''">
-            and sparepickdetail.id like concat('%',#{keyword},'%')
+            and sparerestoredetail.id like concat('%',#{keyword},'%')
         </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.store.SpareRestoreDetailDTO"
             resultType="com.platform.dao.vo.query.store.SpareRestoreDetailVO">
-        select sparepickdetail.*
-        from t_spare_restore_detail as sparepickdetail
+        select sparerestoredetail.*
+        from t_spare_restore_detail as sparerestoredetail
         <where>
             <include refid="List_Condition"/>
         </where>

+ 49 - 48
platform-dao/src/main/resources/mapper/store/SpareRestoreFormMapper.xml

@@ -2,103 +2,104 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.dao.mapper.store.SpareRestoreFormMapper">
     <sql id="Base_Column_List">
-                             sparepickform.id,
-                                     sparepickform.pick_no,
-                                     sparepickform.type,
-                                     sparepickform.repair_id,
-                                     sparepickform.repaire_no,
-                                     sparepickform.reason,
-                                     sparepickform.remark,
-                                     sparepickform.status,
-                                     sparepickform.pick_user_id,
-                                     sparepickform.pick_user_name,
-                                     sparepickform.created_user_id,
-                                     sparepickform.created_user_name,
-                                     sparepickform.update_user_id,
-                                     sparepickform.update_user_name,
-                                     sparepickform.created_time,
-                                     sparepickform.update_time
+                             sparerestoreform.id,
+                             sparerestoreform.yy_id,
+                                     sparerestoreform.pick_no,
+                                     sparerestoreform.type,
+                                     sparerestoreform.repair_id,
+                                     sparerestoreform.repaire_no,
+                                     sparerestoreform.reason,
+                                     sparerestoreform.remark,
+                                     sparerestoreform.status,
+                                     sparerestoreform.pick_user_id,
+                                     sparerestoreform.pick_user_name,
+                                     sparerestoreform.created_user_id,
+                                     sparerestoreform.created_user_name,
+                                     sparerestoreform.update_user_id,
+                                     sparerestoreform.update_user_name,
+                                     sparerestoreform.created_time,
+                                     sparerestoreform.update_time
                         </sql>
     <sql id="Ref_Column_List">
-                                                                         sparepickform.pick_no,
-                                     sparepickform.type,
-                                     sparepickform.repair_id,
-                                     sparepickform.pick_user_id,
-                                     sparepickform.pick_user_name,
-                                     sparepickform.repaire_no,
-                                     sparepickform.reason,
-                                     sparepickform.remark,
-                                     sparepickform.status,
+                                                                         sparerestoreform.pick_no,
+                                     sparerestoreform.type,
+                                     sparerestoreform.repair_id,
+                                     sparerestoreform.pick_user_id,
+                                     sparerestoreform.pick_user_name,
+                                     sparerestoreform.repaire_no,
+                                     sparerestoreform.reason,
+                                     sparerestoreform.remark,
+                                     sparerestoreform.status,
                                                                                                                                                                                                                                                                                                 </sql>
     <sql id="List_Condition">
         <if test="id != null and id != ''">
-            and sparepickform.id = #{id}
+            and sparerestoreform.id = #{id}
         </if>
         <if test="pickNo != null and pickNo != ''">
-            and sparepickform.pick_no = #{pickNo}
+            and sparerestoreform.pick_no = #{pickNo}
         </if>
         <if test="type != null">
-            and sparepickform.type = #{type}
+            and sparerestoreform.type = #{type}
         </if>
         <if test="repairId != null and repairId != ''">
-            and sparepickform.repair_id = #{repairId}
+            and sparerestoreform.repair_id = #{repairId}
         </if>
         <if test="repaireNo != null and repaireNo != ''">
-            and sparepickform.repaire_no = #{repaireNo}
+            and sparerestoreform.repaire_no = #{repaireNo}
         </if>
         <if test="reason != null and reason != ''">
-            and sparepickform.reason = #{reason}
+            and sparerestoreform.reason = #{reason}
         </if>
         <if test="remark != null and remark != ''">
-            and sparepickform.remark = #{remark}
+            and sparerestoreform.remark = #{remark}
         </if>
         <if test="status != null">
-            and sparepickform.status = #{status}
+            and sparerestoreform.status = #{status}
         </if>
         <if test="pickUserId != null and pickUserId != ''">
-            and sparepickform.pick_user_id = #{pickUserId}
+            and sparerestoreform.pick_user_id = #{pickUserId}
         </if>
         <if test="pickUserName != null and pickUserName != ''">
-            and sparepickform.pick_user_name = #{pickUserName}
+            and sparerestoreform.pick_user_name = #{pickUserName}
         </if>
         <if test="createdUserId != null and createdUserId != ''">
-            and sparepickform.created_user_id = #{createdUserId}
+            and sparerestoreform.created_user_id = #{createdUserId}
         </if>
         <if test="createdUserName != null and createdUserName != ''">
-            and sparepickform.created_user_name = #{createdUserName}
+            and sparerestoreform.created_user_name = #{createdUserName}
         </if>
         <if test="updateUserId != null and updateUserId != ''">
-            and sparepickform.update_user_id = #{updateUserId}
+            and sparerestoreform.update_user_id = #{updateUserId}
         </if>
         <if test="updateUserName != null and updateUserName != ''">
-            and sparepickform.update_user_name = #{updateUserName}
+            and sparerestoreform.update_user_name = #{updateUserName}
         </if>
         <if test="createdTimeStart != null">
-            and sparepickform.created_time <![CDATA[>=]]>; #{createdTimeStart}
+            and sparerestoreform.created_time <![CDATA[>=]]>; #{createdTimeStart}
         </if>
         <if test="createdTimeEnd != null">
-            and sparepickform.created_time <![CDATA[<=]]> #{createdTimeEnd}
+            and sparerestoreform.created_time <![CDATA[<=]]> #{createdTimeEnd}
         </if>
         <if test="createdTime != null">
-            and sparepickform.created_time = #{createdTime}
+            and sparerestoreform.created_time = #{createdTime}
         </if>
         <if test="updateTimeStart != null">
-            and sparepickform.update_time <![CDATA[>=]]>; #{updateTimeStart}
+            and sparerestoreform.update_time <![CDATA[>=]]>; #{updateTimeStart}
         </if>
         <if test="updateTimeEnd != null">
-            and sparepickform.update_time <![CDATA[<=]]> #{updateTimeEnd}
+            and sparerestoreform.update_time <![CDATA[<=]]> #{updateTimeEnd}
         </if>
         <if test="updateTime != null">
-            and sparepickform.update_time = #{updateTime}
+            and sparerestoreform.update_time = #{updateTime}
         </if>
         <if test="keyword != null and keyword != ''">
-            and sparepickform.no like concat('%',#{keyword},'%')
+            and sparerestoreform.no like concat('%',#{keyword},'%')
         </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.store.SparePickFormDTO"
             resultType="com.platform.dao.vo.query.store.SparePickFormVO">
-        select sparepickform.*
-        from t_spare_restore_form as sparepickform
+        select sparerestoreform.*
+        from t_spare_restore_form as sparerestoreform
         <where>
             <include refid="List_Condition"/>
         </where>

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

@@ -0,0 +1,108 @@
+package com.platform.rest.controller.yongyou;
+
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.R;
+import com.platform.common.validation.group.AddGroup;
+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.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.entity.store.SparePickForm;
+import com.platform.dao.entity.store.SpareRestoreForm;
+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.rest.log.annotation.SysLog;
+import com.platform.service.store.SparePickFormService;
+import com.platform.service.yongyou.YongyouService;
+import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @Description 备件领用登记单 控制器
+ * @Author liuyu
+ * @Date 2020-06-09 10:50:37
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/yongyou")
+public class YongyouController {
+
+    private final YongyouService yongyouService;
+
+    /**
+     * 查询用友存量分页数据
+     *
+     * @param sparePartInfoDTO 备件查询条件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));
+    }
+
+    /**
+     * 发起用友出库单
+     * 推送实际出库数量和状态
+     *
+     * @param id 领用登记单id
+     * @return R
+     */
+    @SysLog("发起用友出库单")
+    @PutMapping("/spare/pick/form/{id}")
+    public R addSparePickForm( @PathVariable("id") String id) {
+        yongyouService.addOutForm(id);
+        return new R<>();
+    }
+    /**
+     * 用友回调领用出库单
+     * 推送实际出库数量和状态
+     *
+     * @param jsonStr 用友返回的json数据
+     * @return R
+     */
+    @SysLog("用友回调领用出库单")
+    @PostMapping("/spare/pick/form")
+    public R BackSparePickForm( String jsonStr) {
+        yongyouService.backOutForm(jsonStr);
+        return new R<>();
+    }
+    /**
+     * 发起用友退库单
+     * 推送实际出库数量和状态
+     *
+     * @param id 退库单id
+     * @return R
+     */
+    @SysLog("发起用友退库单")
+    @PutMapping("/spare/restore/form/{id}")
+    public R addSpareRestoreForm( @PathVariable("id") String id) {
+        yongyouService.addRestoreForm(id);
+        return new R<>();
+    }
+    /**
+     * 用友回调退库单
+     * 推送实际退库数量和状态
+     *
+     * @param jsonStr 用友返回的json数据
+     * @return R
+     */
+    @SysLog("用友回调退库单")
+    @PostMapping("/spare/restore/form")
+    public R updateSpareRestoreForm(String jsonStr) {
+        yongyouService.backRestoreForm(jsonStr);
+        return new R<>();
+    }
+
+}

+ 17 - 6
platform-service/src/main/java/com/platform/service/store/SparePickFormService.java

@@ -5,6 +5,7 @@ import com.platform.dao.dto.store.SparePickFormDTO;
 import com.platform.dao.entity.store.SparePickForm;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.service.base.IBaseService;
+
 import java.util.List;
 
 /**
@@ -15,16 +16,17 @@ import java.util.List;
  */
 public interface SparePickFormService extends IBaseService<SparePickForm, SparePickFormDTO> {
 
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
     /**
      * 分页查询
+     *
      * @param record
      * @param pageNum
      * @param pageSize
@@ -34,6 +36,7 @@ public interface SparePickFormService extends IBaseService<SparePickForm, SpareP
 
     /**
      * 查看详情
+     *
      * @param id
      * @return
      */
@@ -49,4 +52,12 @@ public interface SparePickFormService extends IBaseService<SparePickForm, SpareP
      * @param id
      */
     void updateModelById(String id);
+
+    /**
+     * 提交领用申请,生成待审批的出库单
+     *
+     * @param id
+     * @param yyId
+     */
+    void updateModelByIdYongyou(String id, String yyId);
 }

+ 11 - 7
platform-service/src/main/java/com/platform/service/store/SpareRestoreFormService.java

@@ -19,16 +19,17 @@ import java.util.List;
  */
 public interface SpareRestoreFormService extends IBaseService<SpareRestoreForm, SpareRestoreFormDTO> {
 
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
     /**
      * 分页查询
+     *
      * @param record
      * @param pageNum
      * @param pageSize
@@ -38,6 +39,7 @@ public interface SpareRestoreFormService extends IBaseService<SpareRestoreForm,
 
     /**
      * 查看详情
+     *
      * @param id
      * @return
      */
@@ -45,5 +47,7 @@ public interface SpareRestoreFormService extends IBaseService<SpareRestoreForm,
 
     void cascadingDeleteByKey(String id);
 
- void updateModelByDTO(SpareRestoreFormDTO model);
+    void updateModelByDTO(SpareRestoreFormDTO model);
+
+    void updateModelByIdYongyou(String id, String data);
 }

+ 11 - 0
platform-service/src/main/java/com/platform/service/store/impl/SparePickFormServiceImpl.java

@@ -197,4 +197,15 @@ public class SparePickFormServiceImpl extends BaseServiceImpl<SparePickFormMappe
         OutStoreForm outStoreForm = outStoreFormService.saveModelByPickForm(sparePickFormDTO, mapper.selectDetailList(id));
 
     }
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateModelByIdYongyou(String id, String yyId){
+        SparePickForm sparePickForm = new SparePickForm();
+        sparePickForm.setId(id);
+        sparePickForm.setYyId(yyId);
+        sparePickForm.setUpdateTime(LocalDateTime.now());
+        sparePickForm.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+        sparePickForm.setUpdateUserName(SecurityUtils.getUserInfo().getRealName());
+        mapper.updateByPrimaryKeySelective(sparePickForm);
+    }
 }

+ 15 - 3
platform-service/src/main/java/com/platform/service/store/impl/SpareRestoreFormServiceImpl.java

@@ -102,7 +102,7 @@ public class SpareRestoreFormServiceImpl extends BaseServiceImpl<SpareRestoreFor
                     .andEqualTo(SpareStoreSecond::getBelongUserId, model.getPickUserId());
             SpareStoreSecond second = spareStoreSecondMapper.selectOneByExample(spareStoreWeekend);
             if (!ObjectUtil.isNull(second)) {// 沒有该备件和用户所属的二级库存,则抛出异常提示要先新增该库存,新增通过备件领用,从一级库领用。有了,则更新
-                second.setTotalNum(second.getTotalNum() - storeDetail.getNum());
+                second.setTotalNum(second.getTotalNum().subtract(storeDetail.getNum()));
                 spareStoreSecondMapper.updateByPrimaryKey(second);
             }
         });
@@ -129,7 +129,7 @@ public class SpareRestoreFormServiceImpl extends BaseServiceImpl<SpareRestoreFor
                     .andEqualTo(SpareStoreSecond::getBelongUserId, model.getPickUserId());
             SpareStoreSecond second = spareStoreSecondMapper.selectOneByExample(spareStoreWeekend);
             if (!ObjectUtil.isNull(second)) {// 沒有该备件和用户所属的二级库存,则抛出异常提示要先新增该库存,新增通过备件领用,从一级库领用。有了,则更新
-                second.setTotalNum(second.getTotalNum() + detail.getNum());
+                second.setTotalNum(second.getTotalNum().add(detail.getNum()));
                 spareStoreSecondMapper.updateByPrimaryKey(second);
             }
         });
@@ -152,10 +152,22 @@ public class SpareRestoreFormServiceImpl extends BaseServiceImpl<SpareRestoreFor
                         .andEqualTo(SpareStoreSecond::getBelongUserId, model.getPickUserId());
                 SpareStoreSecond second = spareStoreSecondMapper.selectOneByExample(spareStoreWeekend);
                 if (!ObjectUtil.isNull(second)) {// 沒有该备件和用户所属的二级库存,则抛出异常提示要先新增该库存,新增通过备件领用,从一级库领用。有了,则更新
-                    second.setTotalNum(second.getTotalNum() - storeDetail.getNum());
+                    second.setTotalNum(second.getTotalNum().subtract(storeDetail.getNum()));
                     spareStoreSecondMapper.updateByPrimaryKey(second);
                 }
             }
         });
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateModelByIdYongyou(String id, String yyId){
+        SpareRestoreForm spareRestoreForm = new SpareRestoreForm();
+        spareRestoreForm.setId(id);
+        spareRestoreForm.setYyId(yyId);
+        spareRestoreForm.setUpdateTime(LocalDateTime.now());
+        spareRestoreForm.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+        spareRestoreForm.setUpdateUserName(SecurityUtils.getUserInfo().getRealName());
+        mapper.updateByPrimaryKeySelective(spareRestoreForm);
+    }
 }

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

@@ -0,0 +1,62 @@
+package com.platform.service.yongyou;
+
+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.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.service.base.IBaseService;
+
+import java.util.List;
+
+/**
+ * @Description 用友service
+ * @Author liuyu
+ * @Date 2020-06-09 10:50:37
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface YongyouService {
+
+    /**
+     * 分页查询
+     *
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize);
+
+    /**
+     * 出库单发起用友
+     *
+     * @param id 领用单id
+     * @return
+     */
+    void addOutForm(String id);
+    /**
+     * 出库单用友回调
+     *
+     * @param jsonStr
+     * @return
+     */
+    void backOutForm(String jsonStr);
+    /**
+     * 退库单发起用友
+     *
+     * @param id 退库单id
+     * @return
+     */
+    void addRestoreForm(String id);
+    /**
+     * 退库单发起回调
+     *
+     * @param jsonStr
+     * @return
+     */
+    void backRestoreForm(String jsonStr);
+
+}

+ 300 - 0
platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java

@@ -0,0 +1,300 @@
+package com.platform.service.yongyou.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+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.model.UserInfo;
+import com.platform.common.util.*;
+import com.platform.common.yongyou.request.*;
+import com.platform.common.yongyou.response.*;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.bean.MyVOPage;
+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.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.service.base.impl.BaseServiceImpl;
+import com.platform.service.store.*;
+import com.platform.service.yongyou.YongyouService;
+import handler.yongyou.GetCurrentStockHandler;
+import handler.yongyou.LoginHandler;
+import handler.yongyou.OtherOutHandler;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import tk.mybatis.mapper.weekend.Weekend;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description 用友 service 实现类
+ * @Author liuyu
+ * @Date 2020-06-09 10:50:37
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Slf4j
+@Service("yongyouService")
+public class YongyouServiceImpl implements YongyouService {
+    private SparePickFormService sparePickFormService;
+    private SparePickDetailService sparePickDetailService;
+    private SpareRestoreFormService spareRestoreFormService;
+    private SpareRestoreDetailService spareRestoreDetailService;
+    private String token_key = "yongyou-token";
+
+    private String geToken() {
+        String token = RedisUtils.getString(token_key);
+        if (StringUtils.isBlank(token)) {
+            LoginHandler handler = new LoginHandler();
+            LoginRequest req = new LoginRequest();
+            req.setCSrv("");
+            req.setPAccId("");
+            req.setCSrv("");
+            req.setPUserId("");
+            req.setPPassword("");
+            req.setPDate(DateUtils.dateToString(LocalDate.now(), DateUtils.PATTERN_YMD));
+            handler.setRequest(req);
+            R r = handler.handler();
+            LoginResponse loginResponse = (LoginResponse) r.getData();
+            Login login = loginResponse.getData();
+            token = login.getToken();
+            RedisUtils.setString(token_key, token);
+            return token;
+        } else {
+            return token;
+        }
+    }
+
+    /**
+     * 查询存量分页
+     *
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public AbstractPageResultBean<SparePartInfoVO> selectPageList(SparePartInfoDTO record, int pageNum, int pageSize) {
+        // 已生成情况,直接推送
+        GetCurrentStockHandler handler = new GetCurrentStockHandler();
+        GetCurrentStockRequest req = new GetCurrentStockRequest();
+        req.setToken(geToken());
+        req.setConn("");
+        req.setPageNum(pageNum);
+        req.setPageSize(pageSize);
+        req.setStcWhere("");
+        handler.setRequest(req);
+        R r = handler.handler();
+        GetCurrentStockResponse response = (GetCurrentStockResponse) r.getData();
+        List<GetCurrentStock> datas = response.getData();
+        List<SparePartInfoVO> partInfoVOS = new ArrayList<>();
+        for (GetCurrentStock stockResponse : datas) {
+            SparePartInfoVO partInfoVO = new SparePartInfoVO();
+            partInfoVO.setId(stockResponse.getPartId() + "");
+            partInfoVO.setName(stockResponse.getCInvName());
+            partInfoVO.setGgxh(stockResponse.getCInvStd());
+            partInfoVO.setNum(stockResponse.getIQuantity());
+            partInfoVOS.add(partInfoVO);
+        }
+
+        PageHelper.startPage(pageNum, pageSize);
+        MyVOPage<SparePartInfoVO> myVOPage = new MyVOPage<>();
+        myVOPage.setPageNum(pageNum);
+        myVOPage.setPageSize(pageSize);
+        Page page = new Page(pageNum, pageSize);
+        page.setTotal(response.getTotal());
+        myVOPage.setPages(page.getPages());
+        myVOPage.setTotal(Long.valueOf(response.getTotalNum()));
+        myVOPage.setRows(partInfoVOS);
+        return myVOPage;
+    }
+
+    /**
+     * 提交领用单到出库单
+     *
+     * @param id 领用单id
+     */
+    @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.setCAcc_ID("");
+        req.setOtherOutVouch(otherOutVouch);
+        req.setToken(geToken());
+        req.setConn("");
+        handler.setRequest(req);
+        R r = handler.handler();
+        OtherOutAddResponse response = (OtherOutAddResponse) r.getData();
+        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);
+        }
+        SparePickForm sparePickForm = new SparePickForm();
+        sparePickForm.setStatus(2);
+        sparePickForm.setId(id);
+        sparePickFormService.modModelByPrimaryKey(sparePickForm);
+
+    }
+
+    /**
+     * 提交退库单到出库单
+     *
+     * @param id 领用单id
+     */
+    @Override
+    public void addRestoreForm(String id) {
+        SpareRestoreFormVO sparePickFormVO = spareRestoreFormService.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<SpareRestoreDetailVO> detailVOS = sparePickFormVO.getDetailList();
+        for (SpareRestoreDetailVO vo : detailVOS) {
+            OtherOutDetail detail = new OtherOutDetail();
+            detail.setId(vo.getSpareId());
+            detail.setIquantity(vo.getNum().negate() );// 取负数
+            otherOutDetail.add(detail);
+        }
+
+        // 推送数据
+        OtherOutHandler handler = new OtherOutHandler();
+        OtherOutAddRequest req = new OtherOutAddRequest();
+        req.setCAcc_ID("");
+        req.setOtherOutVouch(otherOutVouch);
+        req.setToken(geToken());
+        req.setConn("");
+        handler.setRequest(req);
+        R r = handler.handler();
+        OtherOutAddResponse response = (OtherOutAddResponse) r.getData();
+        String data = response.getData();
+
+        // 保存用友出库单数据
+        spareRestoreFormService.updateModelByIdYongyou(sparePickFormVO.getId(), data);
+    }
+
+    /**
+     * 退库单用友回调
+     *
+     * @param jsonStr
+     */
+    @Override
+    public void backRestoreForm(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");
+            SpareRestoreDetail sparePickDetail = new SpareRestoreDetail();
+            sparePickDetail.setId(detailId);
+            sparePickDetail.setNum(new BigDecimal(spareNum));
+            sparePickDetail.setSpareGgxh(spareGGXH);
+            spareRestoreDetailService.modModelByPrimaryKey(sparePickDetail);
+        }
+        SpareRestoreForm sparePickForm = new SpareRestoreForm();
+        sparePickForm.setStatus(2);
+        sparePickForm.setId(id);
+        spareRestoreFormService.modModelByPrimaryKey(sparePickForm);
+    }
+}

+ 5 - 7
platform-service/src/main/java/handler/yongyou/BaseRequestHandler.java

@@ -27,7 +27,6 @@ import java.util.Map;
 @Slf4j
 public abstract class BaseRequestHandler {
     private BaseRequest request;
-
     private ThirdInfoLogService infoService;
 
     /**
@@ -54,11 +53,10 @@ public abstract class BaseRequestHandler {
      * 我们请求新点数据处理
      * @return
      */
-    @SuppressWarnings("unchecked")
     public R handler() {
         R r = new R();
         BaseResponse response = null;
-        String logId = generateLogRequest(request,this.serviceType);
+        String logId = generateLogRequest(request, this.serviceType);
         // post请求返回值 the request return value
         String responseStr = "";
         try {
@@ -78,7 +76,7 @@ public abstract class BaseRequestHandler {
                 log.setErrorStatus(1);
             }else{
                 log.setErrorStatus(0);
-                successResponse(request);
+                successResponse(request, response);
             }
             getLogService().modModelByPrimaryKey(log);
         } catch (Exception e) {
@@ -127,7 +125,7 @@ public abstract class BaseRequestHandler {
         String url = DictCache.getValueByCode(DictTypeEnum.THIRD_PARTY_YONGYOU.getType(), this.serviceType);
         log.info("请求URL----------------"+url);
         // 获取请求体
-        String bodyString = JSON.toJSONString(request.getBody());
+        String bodyString = JSON.toJSONString(request);
         Map<String, String> bodyMap = JsonUtils.jsonToMap(bodyString);
         String resStr = HttpUtil.post(url, JsonUtils.objectToJson(bodyMap));
         try {
@@ -139,10 +137,10 @@ public abstract class BaseRequestHandler {
     }
 
     /**
-     * 推送给金融支撑平台成功后,本地操作
+     * 推送给用友成功后,对用友的返回数据进行本地处理
      * 子类自行实现
      * @param req
      */
-    public abstract void successResponse(BaseRequest req);
+    public abstract void successResponse(BaseRequest req, BaseResponse response);
 
 }

+ 23 - 0
platform-service/src/main/java/handler/yongyou/GetCurrentStockHandler.java

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

+ 27 - 0
platform-service/src/main/java/handler/yongyou/LoginHandler.java

@@ -0,0 +1,27 @@
+package handler.yongyou;
+
+import com.platform.common.yongyou.request.BaseRequest;
+import com.platform.common.yongyou.request.LoginRequest;
+import com.platform.common.yongyou.response.BaseResponse;
+import com.platform.common.yongyou.response.LoginResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class LoginHandler extends BaseRequestHandler{
+    /**
+     * 处理登录用友返回数据
+     * 1:保存token,还是每次都调用token接口
+     * 2:用户名和账户保存到数据字典中
+     * 3:不保存token,每次都重新获取token?
+     *
+     * @param req
+     * @param resp
+     */
+    @Override
+    public void successResponse(BaseRequest req, BaseResponse resp) {
+        LoginRequest request = (LoginRequest)req;
+        LoginResponse response = (LoginResponse)resp;
+    }
+}

+ 35 - 0
platform-service/src/main/java/handler/yongyou/OtherOutHandler.java

@@ -0,0 +1,35 @@
+package handler.yongyou;
+
+import com.platform.common.yongyou.request.BaseRequest;
+import com.platform.common.yongyou.request.LoginRequest;
+import com.platform.common.yongyou.request.OtherOutAddRequest;
+import com.platform.common.yongyou.response.BaseResponse;
+import com.platform.common.yongyou.response.LoginResponse;
+import com.platform.common.yongyou.response.OtherOutAddResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 出库申请单
+ * 退库申请单,同一个接口
+ * 数量正:出库
+ * 数量负:退库
+ *
+ */
+@Slf4j
+@Component
+public class OtherOutHandler extends BaseRequestHandler{
+
+    /**
+     * 处理出库,退库返回结果
+     * 1:保存返回的出库入库单id
+     * @param req
+     * @param resp
+     */
+    @Override
+    public void successResponse(BaseRequest req, BaseResponse resp) {
+        OtherOutAddRequest request = (OtherOutAddRequest)req;
+        OtherOutAddResponse response = (OtherOutAddResponse)resp;
+
+    }
+}