1 year ago
parent
commit
98e8d66ad8
17 changed files with 229 additions and 9 deletions
  1. 2 1
      platform-common/src/main/java/com/platform/common/enums/DictTypeEnum.java
  2. 1 1
      platform-common/src/main/java/com/platform/common/yongyou/request/Inventory.java
  3. 25 0
      platform-common/src/main/java/com/platform/common/yongyou/request/PuAppDetail.java
  4. 26 0
      platform-common/src/main/java/com/platform/common/yongyou/request/PuAppMain.java
  5. 17 0
      platform-common/src/main/java/com/platform/common/yongyou/request/PuAppVouch.java
  6. 10 0
      platform-common/src/main/java/com/platform/common/yongyou/request/PushPurchaseOrderRequest.java
  7. 1 1
      platform-common/src/main/java/com/platform/common/yongyou/response/AddSpareResponse.java
  8. 15 0
      platform-common/src/main/java/com/platform/common/yongyou/response/PushPurchaseOrderResponse.java
  9. 1 0
      platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java
  10. 1 0
      platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseOrder.java
  11. 1 0
      platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseOrderVO.java
  12. 5 1
      platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml
  13. 7 0
      platform-rest/src/main/java/com/platform/rest/controller/yongyou/YongyouController.java
  14. 1 0
      platform-service/src/main/java/com/platform/service/yongyou/YongyouService.java
  15. 87 4
      platform-service/src/main/java/com/platform/service/yongyou/impl/YongyouServiceImpl.java
  16. 1 1
      platform-service/src/main/java/handler/yongyou/AddSpareHandler.java
  17. 28 0
      platform-service/src/main/java/handler/yongyou/PushPurchaseOrderHandler.java

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

@@ -30,7 +30,8 @@ public enum DictTypeEnum {
     THIRD_PARTY_YONGYOU_LOGIN("LOGIN", "登录接口"),
     THIRD_PARTY_YONGYOU_INVENTORYLIST("INVENTORYLIST", "存量接口"),
     THIRD_PARTY_YONGYOU_GETSTOCK("GETSTOCK", "存量库存接口"),
-    ADD_SPARE("ADDSPARE", "新增物料接口"),
+    THIRD_PARTY_YONGYOU_ADDSPARE("ADDSPARE", "新增物料接口"),
+    THIRD_PARTY_YONGYOU_PUSHPURCHASEORDER("PUSHPURCHASEORDER", "新增物料接口"),
 
     THIRD_PARTY_YONGYOU_OTHEROUT("OTHEROUT", "出库申请单"),
     REMOTE_MEASURE("REMOTE_MEASURE", "设备遥测"),

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

@@ -30,7 +30,7 @@ public class Inventory {
     private Integer cPUComUnitCode;//采购默认计量单位编码 ,如果没有辅计量单位,为空
     private Integer cSAComUnitCode;//销售默认计量单位编码 ,如果没有辅计量单位,为空
     private Integer cSTComUnitCode;//库存默认计量单位编码 ,如果没有辅计量单位,为空
-    private Object cCAComUnitCode;//成本默认计量单位编码,如果没有辅计量单位,为空
+    private Integer cCAComUnitCode;//成本默认计量单位编码,如果没有辅计量单位,为空
     private Integer iDrawType;//领料方式 ,直接领料为 0
     private Integer iSupplyType;//供应类型 ,领用 为0
     private boolean bInvBatch;//是否批次管理

+ 25 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/PuAppDetail.java

@@ -0,0 +1,25 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class PuAppDetail {
+    private String cinvcode;//存货编码
+
+    private String ipertaxrate;//税率
+
+    private Integer fquantity;//数量
+
+    private String drequirdate;//需求日期
+
+    private String darrivedate;//计划到货日期
+
+    private String cexch_name;//币种
+
+    private String iexchrate;//汇率
+
+    private String ivouchrowno;//行号
+}

+ 26 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/PuAppMain.java

@@ -0,0 +1,26 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class PuAppMain{
+    private String ddate;//请购日期
+
+    private String ccode;//单据号
+
+    private String cptcode;//采购类型
+
+    private String cbustype;//业务类型
+
+    private String cmaker;//制单人
+
+    private String cdefine1;//计划类型
+    private String cdefine2;//设备
+
+    private String cdefine11;//计划备注
+
+
+}

+ 17 - 0
platform-common/src/main/java/com/platform/common/yongyou/request/PuAppVouch.java

@@ -0,0 +1,17 @@
+package com.platform.common.yongyou.request;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 现存量查询
+ */
+@Data
+public class PuAppVouch{
+    @JSONField(name="PuAppMain")
+    private PuAppMain PuAppMain;
+    @JSONField(name="PuAppMain")
+    private List<PuAppDetail> PuAppDetail;
+}

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

@@ -0,0 +1,10 @@
+package com.platform.common.yongyou.request;
+
+import lombok.Data;
+
+@Data
+public class PushPurchaseOrderRequest extends BaseRequest{
+    private PuAppVouch PuAppVouch;
+    private String TradeID;
+
+}

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

@@ -7,7 +7,7 @@ import lombok.Data;
  */
 @Data
 public class AddSpareResponse{
-    boolean errcode;
+    Boolean errcode;
     String errmsg;
     String id;
     String tradeid;

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

@@ -0,0 +1,15 @@
+package com.platform.common.yongyou.response;
+
+import lombok.Data;
+
+/**
+ * 现存量查询响应
+ */
+@Data
+public class PushPurchaseOrderResponse {
+    Boolean errcode;
+    String errmsg;
+    String id;
+    String tradeid;
+
+}

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/dto/longyanpurchaseorder/LongYanPurchaseOrderDTO.java

@@ -22,6 +22,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanPurchaseOrderDTO extends BaseDTO implements Serializable {
+    private String yongYouId;
     private String storeName;
     private String storePosition;
 //    private List<LongYanPurchaseDetailDTO> deleteDetails;

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/entity/longyanpurchaseorder/LongYanPurchaseOrder.java

@@ -22,6 +22,7 @@ import javax.persistence.Transient;
 @Accessors(chain = true)
 @Table(name = "t_long_yan_purchase_order")
 public class LongYanPurchaseOrder implements Serializable{
+    private String yongYouId;
 
     private String purchaseNo;
     private Integer status;

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/longyanpurchaseorder/LongYanPurchaseOrderVO.java

@@ -23,6 +23,7 @@ import java.util.List;
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
 public class LongYanPurchaseOrderVO extends BaseVO implements Serializable{
+    private String yongYouId;
 
     private List<LongYanPurchaseDetailVO> detailVOS;
     private String complateProjectName;

+ 5 - 1
platform-dao/src/main/resources/mapper/longyanpurchaseorder/LongYanPurchaseOrderMapper.xml

@@ -15,7 +15,8 @@
                                      menu.order_name,
                                      menu.remark,
                                      menu.position_no,
-                                     menu.total_num
+                                     menu.total_num,
+                                     menu.yong_you_id
                         </sql>
     <sql id="Ref_Column_List">
                                                                          menu.sb_id,
@@ -91,6 +92,9 @@
         <if test="purchaseNo != null and purchaseNo!='' ">
             and menu.purchase_no like concat('%',#{purchaseNo},'%')
         </if>
+        <if test="yongYouId !=null and yongYouId !=''">
+            and menu.yongYouId = #{yongYouId}
+        </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO" resultType="com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO">
         select menu.*,project.name as projectName,project2.name as parentProjectName,info.name as sbName,info.position_no as positionNo

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

@@ -80,6 +80,13 @@ public class YongyouController {
         return new R<>(yongyouService.addSpare(inventory,tokenType));
     }
 
+    @SysLog("向用友推送采购单")
+    @PostMapping("/push/purchaseOrder")
+    public R pushPurchaseOrder(@RequestParam String id) {
+//        yongyouService.addOutForm(id, false);
+        return new R(yongyouService.pushPurchaseOrder(id));
+    }
+
     /**
      * 用友回调领用出库单
      * 推送实际出库数量和状态

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

@@ -24,6 +24,7 @@ import java.util.List;
  * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
  */
 public interface YongyouService {
+    String pushPurchaseOrder(String id);
     String addSpare(Inventory inventory,Integer tokenType);
 
     /**

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

@@ -1,17 +1,22 @@
 package com.platform.service.yongyou.impl;
 
+import cn.hutool.core.lang.Dict;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.Page;
+import com.google.gson.JsonObject;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.cache.DictCache;
 import com.platform.common.exception.BusinessException;
-import com.platform.common.util.DateUtils;
-import com.platform.common.util.RedisUtils;
-import com.platform.common.util.StringUtils;
+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.MyVOPage;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
 import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
 import com.platform.dao.dto.store.SpareStoreDTO;
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
 import com.platform.dao.entity.repair.RepairApplicationForm;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbModelSpareBom;
@@ -19,9 +24,13 @@ import com.platform.dao.entity.store.OutStoreDetail;
 import com.platform.dao.entity.store.OutStoreForm;
 import com.platform.dao.enums.OutStoreStatusEnum;
 import com.platform.dao.enums.YesNoEnum;
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper;
 import com.platform.dao.mapper.repair.RepairApplicationFormMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseDetailVO;
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
 import com.platform.dao.vo.query.sparepartmanage.SparePartInfoVO;
 import com.platform.dao.vo.query.store.OutStoreDetailVO;
 import com.platform.dao.vo.query.store.OutStoreFormVO;
@@ -37,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -61,6 +71,10 @@ public class YongyouServiceImpl implements YongyouService {
     private SbModelSpareBomMapper sbModelSpareBomMapper;
     @Resource
     private RepairApplicationFormMapper repairApplicationFormMapper;
+    @Resource
+    private LongYanPurchaseOrderMapper longYanPurchaseOrderMapper;
+    @Resource
+    private LongYanPurchaseDetailMapper longYanPurchaseDetailMapper;
     private String token_key = "yongyou-token";
     private String Conn_key = "yongyou-Conn";
     private String cAcc_ID_key = "yongyou-cAcc_ID";
@@ -381,9 +395,78 @@ public class YongyouServiceImpl implements YongyouService {
         return myVOPage;
     }
 
+    @Override
+    public String pushPurchaseOrder(String id) {
+        LongYanPurchaseOrderDTO dto = new LongYanPurchaseOrderDTO();
+        dto.setId(id);
+        List<LongYanPurchaseOrderVO> list = longYanPurchaseOrderMapper.selectList(dto);
+        if (list==null||list.size()==0){
+            throw new BusinessException("该采购单已不存在!");
+        }
+        LongYanPurchaseOrderVO vo = list.get(0);
+        if (list.get(0).getOldOrNew()==null){
+            throw new BusinessException("该采购单未选择新老厂!");
+        }
+        LongYanPurchaseDetailDTO longYanPurchaseDetailDTO = new LongYanPurchaseDetailDTO();
+        longYanPurchaseDetailDTO.setLongYangPurchaseOrderId(id);
+        List<LongYanPurchaseDetailVO> detailVOS = longYanPurchaseDetailMapper.selectList(longYanPurchaseDetailDTO);
+        PuAppMain puAppMain = new PuAppMain();
+
+        puAppMain.setCbustype("普通采购");
+
+        puAppMain.setCcode(vo.getPurchaseNo());
+        puAppMain.setCdefine1(DictCache.getLabelByValue("LONG_YAN_PURCHASE_TYPE",vo.getType()));
+        puAppMain.setCdefine2(vo.getSbName());
+        puAppMain.setCdefine11(vo.getRemark());
+        puAppMain.setCmaker(vo.getCreatedUserName());
+        puAppMain.setDdate(DateUtils.dateToString(vo.getCreatedTime()));
+        puAppMain.setCptcode(DictCache.getLabelByValue("LONG_YAN_PURCHASE_TYPE",vo.getType()));
+        List<PuAppDetail> puAppDetails = new ArrayList<>();
+        for (LongYanPurchaseDetailVO orderVO:detailVOS){
+            PuAppDetail detail = new PuAppDetail();
+            detail.setCinvcode(orderVO.getNo());
+            detail.setIpertaxrate("税率");
+            detail.setFquantity(orderVO.getNum().intValue());
+            detail.setDrequirdate("需求日期");
+            detail.setDarrivedate("计划到货日期");
+            detail.setCexch_name("币种");
+            detail.setIexchrate("汇率");
+            detail.setIvouchrowno("行号");
+            puAppDetails.add(detail);
+        }
+        PuAppVouch puAppVouch = new PuAppVouch();
+        puAppVouch.setPuAppMain(puAppMain);
+        puAppVouch.setPuAppDetail(puAppDetails);
+        PushPurchaseOrderRequest request = new PushPurchaseOrderRequest();
+        request.setPuAppVouch(puAppVouch);
+        request.setTradeID("");
+        request.setToken(geToken(vo.getOldOrNew()));
+        request.setCAcc_ID(getCAccId2(vo.getOldOrNew()));
+        request.setConn(getConn2(vo.getOldOrNew()));
+        PushPurchaseOrderHandler handler = new PushPurchaseOrderHandler();
+        handler.setRequest(request);
+        String responseStr = handler.handler();
+        PushPurchaseOrderResponse response = JsonUtils.jsonToModel(responseStr,PushPurchaseOrderResponse.class);
+        LongYanPurchaseOrder order = new LongYanPurchaseOrder();
+        order.setId(id);
+        if (response.getErrcode()){
+            order.setStatus(3);
+            longYanPurchaseOrderMapper.updateByPrimaryKeySelective(order);
+            order.setYongYouId(response.getId());
+            return response.getErrmsg();
+        }
+        order.setStatus(8);
+        longYanPurchaseOrderMapper.updateByPrimaryKeySelective(order);
+        throw new BusinessException("采购单申请失败,请联系管理员!");
+    }
+
     @Override
     public String addSpare(Inventory inventory,Integer tokenType) {
         AddSpareRequest request = new AddSpareRequest();
+        UserInfo userInfo = SecurityUtils.getUserInfo();
+        inventory.setDInvCreateDatetime(DateUtils.dateToString(LocalDateTime.now()));
+        inventory.setCModifyPerson(userInfo.getUsername());
+        inventory.setDModifyDate(DateUtils.dateToString(LocalDateTime.now()));
         request.setInventory(inventory);
         request.setTradeID("");
         request.setToken(geToken(tokenType));
@@ -397,7 +480,7 @@ public class YongyouServiceImpl implements YongyouService {
         handler.setRequest(request);
         String responseStr = handler.handler();
         AddSpareResponse response = JSONObject.parseObject(responseStr, AddSpareResponse.class);
-        if (response.isErrcode()){
+        if (response.getErrcode()){
             return response.getErrmsg();
         }else {
             throw new BusinessException("新增失败!");

+ 1 - 1
platform-service/src/main/java/handler/yongyou/AddSpareHandler.java

@@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
 public class AddSpareHandler extends BaseRequestHandler{
 
     public AddSpareHandler(){
-        setServiceType(DictTypeEnum.ADD_SPARE.getType());
+        setServiceType(DictTypeEnum.THIRD_PARTY_YONGYOU_ADDSPARE.getType());
     }
 
     /**

+ 28 - 0
platform-service/src/main/java/handler/yongyou/PushPurchaseOrderHandler.java

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