wzy пре 9 месеци
родитељ
комит
b4a1162bf0

+ 1 - 13
mjava-lingmingguangzi/pom.xml

@@ -40,25 +40,13 @@
             <artifactId>base</artifactId>
             <version>1.1-SNAPSHOT</version>
         </dependency>
-
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.32</version>
-            <scope>runtime</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>3.5.3.2</version>
-        </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
 
+
     </dependencies>
 
     <build>

+ 55 - 0
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/controller/LingmingguangziController.java

@@ -42,18 +42,73 @@ public class LingmingguangziController {
         return lingmingguangziService.getCustomerQuestionnaireCount2(start, end);
     }
 
+    /**
+     * 获取tb转阶段申请交付件等详情
+     * @param stageName
+     * @return
+     */
     @GetMapping("/getTbStageDetails")
     public McR getTbStageDetails(String stageName) {
         return lingmingguangziService.getTbStageDetails(stageName);
     }
 
+    /**
+     * 新增客户
+     * @param map
+     * @return
+     */
     @PostMapping("/addCustomer")
     public McR addCustomer(@RequestBody Map map) {
         return lingmingguangziService.addCustomer(map);
     }
 
+    /**
+     * 更新客户
+     * @param map
+     * @return
+     */
     @PostMapping("/updateCustomer")
     public McR updateCustomer(@RequestBody Map map) {
         return lingmingguangziService.updateCustomer(map);
     }
+
+    /**
+     * 获取产品交付状态
+     * @param keyword
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/getProductDeliveryStatus")
+    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize) {
+        return lingmingguangziService.getProductDeliveryStatus(keyword,pageNo,pageSize);
+    }
+
+    /**
+     * 获取工序
+     * @return
+     */
+    @GetMapping("/getProcess")
+    public McR getProcess(int pageNo,int pageSize) {
+        return lingmingguangziService.getProcess(pageNo,pageSize);
+    }
+
+    /**
+     * 获取税率
+     * @return
+     */
+    @GetMapping("/getTaxRate")
+    public McR getTaxRate() {
+        return lingmingguangziService.getTaxRate();
+    }
+
+    @PostMapping("/addSaleOrder")
+    public McR addSaleOrder(@RequestBody Map map) {
+        return lingmingguangziService.addSaleOrder(map);
+    }
+
+    @PostMapping("/updateSaleOrder")
+    public McR updateSaleOrder(@RequestBody Map map) {
+        return lingmingguangziService.updateSaleOrder(map);
+    }
 }

+ 10 - 0
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/service/LingmingguangziService.java

@@ -20,4 +20,14 @@ public interface LingmingguangziService {
     McR addCustomer(Map map);
 
     McR updateCustomer(Map map);
+
+    McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize);
+
+    McR getProcess(int pageNo,int pageSize);
+
+    McR getTaxRate();
+
+    McR addSaleOrder(Map map);
+
+    McR updateSaleOrder(Map map);
 }

+ 222 - 5
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/service/LingmingguangziServiceImpl.java

@@ -5,9 +5,14 @@ import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONUtil;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSON;
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
+
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McR;
@@ -15,7 +20,6 @@ import com.malk.server.dingtalk.DDR_New;
 import com.malk.server.teambition.TBConf;
 import com.malk.server.teambition.TBR;
 import com.malk.service.aliwork.YDClient;
-import com.malk.service.teambition.TBClient;
 import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
 import com.malk.utils.UtilToken;
@@ -26,6 +30,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -297,6 +302,196 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         }
     }
 
+    @Override
+    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize) {
+        Map<String,Object> param = new HashMap<>();
+        param.put("pageNo",pageNo);
+        param.put("pageSize",pageSize);
+        param.put("saleCode",keyword);
+        Map<String,Object> res = get(erpUrl + "pws/pdm/pdmProductForm/list", param, getHeader());
+
+        Map result = (Map) res.get("result");
+        List<Map> data = (List<Map>) result.get("records");
+        if (data.isEmpty()){
+            param.remove("saleCode");
+            param.put("saleName",keyword);
+            res = get(erpUrl + "pws/pdm/pdmProductForm/list", param, getHeader());
+            result = (Map) res.get("result");
+            data = (List<Map>) result.get("records");
+        }
+
+        int totalCount = (int) result.get("total");
+        int currentPage = (int) result.get("current");
+
+        Map map = new HashMap();
+        map.put("data",data);
+        map.put("totalCount",totalCount);
+        map.put("currentPage",currentPage);
+
+        return McR.success(map);
+    }
+
+    @Override
+    public McR getProcess(int pageNo,int pageSize) {
+        Map param = new HashMap();
+        param.put("active","D2_SUCCESS");
+        param.put("pageNo",pageNo);
+        param.put("pageSize",pageSize);
+
+        Map<String, Object> res = get(erpUrl + "pws/pdm/pdmStation/list", param, getHeader());
+        Map result = (Map) res.get("result");
+        List<Map> data = (List<Map>) result.get("records");
+        int totalCount = (int) result.get("total");
+        int currentPage = (int) result.get("current");
+
+        Map map = new HashMap();
+        map.put("data",data);
+        map.put("totalCount",totalCount);
+        map.put("currentPage",currentPage);
+
+        return McR.success(map);
+    }
+
+    @Override
+    public McR getTaxRate() {
+        Map param = new HashMap();
+        param.put("pageNo",1);
+        param.put("pageSize",50);
+        Map<String, Object> res = get(erpUrl + "pws/fin/finTax/list", param, getHeader());
+        Map result = (Map) res.get("result");
+        List<Map> records = (List<Map>) result.get("records");
+        List<String> list = records.stream().map(map1 -> map1.get("taxName").toString()).collect(Collectors.toList());
+        return McR.success(list);
+    }
+
+    @Override
+    public McR addSaleOrder(Map map) {
+        if (Objects.isNull(map.get("formInstId"))){
+            McR.errorParam("formInstId不能为空");
+        }
+        String formInstId = map.get("formInstId").toString();
+        Map formData = ydClient.queryData(YDParam.builder().formInstId(formInstId)
+                .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+
+        //新增销售订单
+        Map body = new HashMap();
+        body.put("customerCode",getString(formData.get("textField_ly5m36nw")));//客户编码
+        String priority = getString(formData.get("selectField_lwpsp162"));//紧急级别
+        switch (priority) {
+            case "普通": body.put("priority", "D1_NORMAL "); break;
+            case "紧急": body.put("priority", "D2_URGENT"); break;
+            case "特紧急": body.put("priority", "D3_VERY_URGENT"); break;
+        }
+        String soType = getString(formData.get("selectField_lx2xj36n"));//订单类型
+        switch (soType) {
+            case "销售订单": body.put("soType", "D1_SALES_ORDER"); break;
+            case "预测订单": body.put("soType", "D2_FORECAST_ORDER"); break;
+        }
+        body.put("deliveryDate",getString(formData.get("textField_m0aduyx1")));//希望交期
+        body.put("salesperson",getString(formData.get("textField_m0aduyx9")));//销售员
+        body.put("payCurrencyCode",getString(formData.get("textField_m0aduyxa")));//币别
+        body.put("ioDate",getString(formData.get("textField_m0aduyx2")));//单据日期
+        body.put("comments",getString(formData.get("textareaField_lwpsp16e")));//备注
+        //销售订单明细
+        List<Map> list = (List<Map>) formData.get("tableField_lwpsp16f");
+        List<Map> makSoDetailList = list.stream().map(map1 -> {
+            Map detail = new HashMap();
+            detail.put("productFormId",getString(map1.get("textField_m03o1x0m")));//交付状态id
+            detail.put("saleCode",getString(map1.get("textField_lwpsp16g")));//交付名称
+            detail.put("saleName",getString(map1.get("textField_lwpsp16h")));//交付说明
+            detail.put("customerModel",getString(map1.get("textField_lwpsp16i")));//客户型号
+            detail.put("partnumber",getString(map1.get("textField_lwpsp16k")));//物料编码
+            detail.put("partname",getString(map1.get("textField_lwpsp16m")));//物料名称
+            detail.put("pmodel",getString(map1.get("textField_lwpsp16o")));//物料型号
+            detail.put("pstandard",getString(map1.get("textField_lwpsp16q")));//物料规格
+            detail.put("stationCode",getString(map1.get("textField_m053iuol")));//工序编码
+            detail.put("waferQty",getString(map1.get("numberField_lwpsp16t")));//片数
+            detail.put("qty",getString(map1.get("numberField_lwpsp16v")));//数量
+            detail.put("quotation",getString(map1.get("numberField_lwpsp172")));//未税单价
+            detail.put("subTotal",getString(map1.get("numberField_lwpz9exp")));//未税总价
+            detail.put("taxRate",getString(map1.get("numberField_m053iuom")));//税率
+            detail.put("taxQuotation",getString(map1.get("numberField_lwpsp175")));//含税单价
+            detail.put("taxSubtotal",getString(map1.get("numberField_lwpsp177")));//含税总价
+            detail.put("die_model","");//
+            return detail;
+        }).collect(Collectors.toList());
+        body.put("makSoDetailList",makSoDetailList);
+        body.put("makSoFilesList",new ArrayList<>());
+
+        Map res = post(erpUrl + "pws/mak/makSalesOrder/add", null, getHeader(), body);
+        String orderCode = getString(res.get("result"));
+        //更新宜搭订单编号
+        ydClient.operateData(YDParam.builder()
+                .formInstId(formInstId)
+                .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m0alsjj1",orderCode)))
+                .build(),YDConf.FORM_OPERATION.update);
+
+        return McR.success();
+    }
+
+    @Override
+    public McR updateSaleOrder(Map map) {
+        if (Objects.isNull(map.get("formInstId"))){
+            McR.errorParam("formInstId不能为空");
+        }
+        String formInstId = map.get("formInstId").toString();
+        Map formData = ydClient.queryData(YDParam.builder().formInstId(formInstId)
+                .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+
+        //新增销售订单
+        Map body = new HashMap();
+        body.put("customerCode",getString(formData.get("textField_ly5m36nw")));//客户编码
+        String priority = getString(formData.get("selectField_lwpsp162"));//紧急级别
+        switch (priority) {
+            case "普通": body.put("priority", "D1_NORMAL "); break;
+            case "紧急": body.put("priority", "D2_URGENT"); break;
+            case "特紧急": body.put("priority", "D3_VERY_URGENT"); break;
+        }
+        String soType = getString(formData.get("selectField_lx2xj36n"));//订单类型
+        switch (soType) {
+            case "销售订单": body.put("soType", "D1_SALES_ORDER"); break;
+            case "预测订单": body.put("soType", "D2_FORECAST_ORDER"); break;
+        }
+        body.put("deliveryDate",getString(formData.get("textField_m0aduyx1")));//希望交期
+        body.put("salesperson",getString(formData.get("textField_m0aduyx9")));//销售员
+        body.put("payCurrencyCode",getString(formData.get("textField_m0aduyxa")));//币别
+        body.put("ioDate",getString(formData.get("textField_m0aduyx2")));//单据日期
+        body.put("comments",getString(formData.get("textareaField_lwpsp16e")));//备注
+        //销售订单明细
+        List<Map> list = (List<Map>) formData.get("tableField_lwpsp16f");
+        List<Map> makSoDetailList = list.stream().map(map1 -> {
+            Map detail = new HashMap();
+            detail.put("productFormId",getString(map1.get("textField_m03o1x0m")));//交付状态id
+            detail.put("saleCode",getString(map1.get("textField_lwpsp16g")));//交付名称
+            detail.put("saleName",getString(map1.get("textField_lwpsp16h")));//交付说明
+            detail.put("customerModel",getString(map1.get("textField_lwpsp16i")));//客户型号
+            detail.put("partnumber",getString(map1.get("textField_lwpsp16k")));//物料编码
+            detail.put("partname",getString(map1.get("textField_lwpsp16m")));//物料名称
+            detail.put("pmodel",getString(map1.get("textField_lwpsp16o")));//物料型号
+            detail.put("pstandard",getString(map1.get("textField_lwpsp16q")));//物料规格
+            detail.put("stationCode",getString(map1.get("textField_m053iuol")));//工序编码
+            detail.put("waferQty",getString(map1.get("numberField_lwpsp16t")));//片数
+            detail.put("qty",getString(map1.get("numberField_lwpsp16v")));//数量
+            detail.put("quotation",getString(map1.get("numberField_lwpsp172")));//未税单价
+            detail.put("subTotal",getString(map1.get("numberField_lwpz9exp")));//未税总价
+            detail.put("taxRate",getString(map1.get("numberField_m053iuom")));//税率
+            detail.put("taxQuotation",getString(map1.get("numberField_lwpsp175")));//含税单价
+            detail.put("taxSubtotal",getString(map1.get("numberField_lwpsp177")));//含税总价
+            detail.put("die_model","");//
+            return detail;
+        }).collect(Collectors.toList());
+        body.put("makSoDetailList",makSoDetailList);
+        body.put("makSoFilesList",new ArrayList<>());
+
+        Map res = post(erpUrl + "pws/mak/makSalesOrder/add", null, getHeader(), body);
+
+        return McR.success();
+    }
+
+    private String getString(Object object){
+        return (object == null) ? "" : object.toString();
+    }
+
     private Map<String,String> getHeader(){
         Map<String, Object> map = post(erpUrl + "pws/sys/mLogin", null, null,UtilMap.map("username, password",userName,password));
 
@@ -330,7 +525,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
             get.addHeaders(headers);
         }
         HttpResponse response = get.execute();
-        Map<String,Object> result = JSONUtil.toBean(response.body(), Map.class);
+
+        Map<String, Object> result = null;
+        try {
+            ObjectMapper objectMapper = new ObjectMapper();
+            result = objectMapper.readValue(response.body(), new TypeReference<Map<String, Object>>() {});
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
+
         log.info("响应结果: {}", result);
         return result;
     }
@@ -357,7 +560,14 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
             request.body(JSONUtil.toJsonStr(body), "application/json");
         }
         HttpResponse response = request.execute();
-        Map<String,Object> result = JSONUtil.toBean(response.body(), Map.class);
+//        Map<String,Object> result = JSONUtil.toBean(response.body(), Map.class);
+        Map<String, Object> result = null;
+        try {
+            ObjectMapper objectMapper = new ObjectMapper();
+            result = objectMapper.readValue(response.body(), new TypeReference<Map<String, Object>>() {});
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
         log.info("响应结果: {}", result);
         return result;
     }
@@ -375,7 +585,14 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
             request.body(JSONUtil.toJsonStr(body), "application/json");
         }
         HttpResponse response = request.execute();
-        Map<String,Object> result = JSONUtil.toBean(response.body(), Map.class);
+//        Map<String,Object> result = JSONUtil.toBean(response.body(), Map.class);
+        Map<String, Object> result = null;
+        try {
+            ObjectMapper objectMapper = new ObjectMapper();
+            result = objectMapper.readValue(response.body(), new TypeReference<Map<String, Object>>() {});
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
         log.info("响应结果: {}", result);
         return result;
     }