|
@@ -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;
|
|
|
}
|