From 539d9ffc477d28a23a923b41fdeabc8c37c99ce6 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 23 九月 2024 14:43:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 208 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 198 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index a262d23..31a84af 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -1,11 +1,15 @@ package com.zy.asrs.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; +import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.entity.result.InOutCountDto; @@ -14,25 +18,34 @@ import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; +import com.zy.asrs.utils.Utils; import com.zy.common.model.DetlDto; +import com.zy.common.utils.HttpHandler; import com.zy.common.utils.NodeUtils; import com.zy.system.entity.User; import com.zy.system.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.text.ParseException; +import java.util.*; /** * Created by vincent on 2022/4/9 */ @Slf4j -@Service +@Service("OpenService") public class OpenServiceImpl implements OpenService { + + @Value("${u8.url}") + private String url; + + @Value("${u8.path}") + private String orderReportPath; + @Autowired private OrderService orderService; @@ -66,6 +79,10 @@ private ReportQueryMapper reportQueryMapper; @Autowired private UserService userService; + @Autowired + private PlaService plaService; + @Autowired + private ApiLogService apiLogService; @Override @Transactional @@ -207,13 +224,13 @@ param.getCCode(), // 璁㈠崟缂栧彿 DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 docType.getDocId(), // 鍗曟嵁绫诲瀷 - null, // 椤圭洰缂栧彿 + 1L, // 椤圭洰缂栧彿 null, // null, // 璋冩嫧椤圭洰缂栧彿 null, // 鍒濆绁ㄦ嵁鍙� - null, // 绁ㄦ嵁鍙� + param.getCAccount(), // 涓讳綋 null, // 瀹㈡埛缂栧彿 - param.getCAccount(), // 瀹㈡埛 + param.getCCusName(), // 瀹㈡埛 null, // 鑱旂郴鏂瑰紡 param.getCMaker(), // 鎿嶄綔浜哄憳 null, // 鍚堣閲戦 @@ -390,8 +407,18 @@ @Override @Transactional public void syncMat(MatSyncParam param) { + if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <= 0) { throw new CoolException("鍟嗗搧鏁版嵁涓虹┖"); + } + + //鍒犻櫎瀛樿揣妗f + if(param.deleteFlag == 1){ + for (MatSyncParam.MatParam matParam : param.getMatDetails()){ + matService.deleteById(matParam.getMatnr()); + } + + return; } for (MatSyncParam.MatParam matParam : param.getMatDetails()) { @@ -486,14 +513,15 @@ } if (!matService.insert(mat)) { throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); - } else { - log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } + log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } else { - mat.sync(param); + //mat.sync(param); + mat.setMaktx(matParam.getMaktx()); if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) { throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳"); } + log.info("鍚屾鏇存柊鐗╂枡[鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); } } @@ -538,4 +566,164 @@ return digitalTwin; } + @Override + public int pakinReportErp(JSONObject json) throws ParseException { + JSONArray jsonArray = JSONArray.parseArray(json.getJSONArray("pla").toJSONString()); + + List<OpenOrderPakoutParam> list = new ArrayList<>(); + + for (Object o : jsonArray){ + JSONObject jsonObject = (JSONObject)o; + String brand = jsonObject.get("brand").toString(); + String batch = jsonObject.get("batch").toString(); + Integer packageNo = Integer.parseInt(jsonObject.get("packageNo").toString()); + + Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo, brand); + Mat mat = matService.selectByMaktx(pla.getBrand()); + //褰撶敓浜у崟鍙蜂笉涓�鑷存椂锛岄渶瑕佹柊寤轰竴涓猵aram + if(list.size() == 0 || checkOrder(list,pla.getProOrderNo()) == null){ + OpenOrderPakoutParam param = new OpenOrderPakoutParam(); + param.setcMaker(json.get("user").toString()); + String type = Cools.isEmpty(pla.getProOrderNo()) ? "璋冩嫧鍏ュ簱鍗�" : "浜ф垚鍝佸叆搴�"; + param.setcCode(Cools.isEmpty(pla.getProOrderNo()) ? (new Date().getTime()) + "" : pla.getProOrderNo()); + param.setcAccount(pla.getWorkshop()); + param.setdDate(Utils.getDateStr(new Date())); + param.setType(type); + + List<OpenOrderPakoutParam.Body> bodyList = new ArrayList<>(); + OpenOrderPakoutParam.Body body = new OpenOrderPakoutParam.Body(); + body.setcInvCode(mat.getMatnr()); + body.setiQuantity(pla.getWeightAnfme()); + body.setcBatch(""); + body.setCbMemo(pla.getMemo()); + bodyList.add(body); + + param.setaDDBody(bodyList); + + list.add(param); + }else { + OpenOrderPakoutParam param = checkOrder(list, pla.getProOrderNo()); + List<OpenOrderPakoutParam.Body> bodyList = param.getADDBody(); + OpenOrderPakoutParam.Body body = checkOrderDetl(bodyList, mat.getMatnr()); + //鏈夋柊鐨勭墝鍙峰垯娣诲姞鏂扮殑orderDetl锛屽惁鍒欑疮鍔� + if(body == null){ + body = new OpenOrderPakoutParam.Body(); + body.setcInvCode(mat.getMatnr()); + body.setiQuantity(pla.getWeightAnfme()); + body.setCbMemo(pla.getMemo()); + bodyList.add(body); + }else { + body.setiQuantity(body.getIQuantity() + pla.getWeightAnfme()); + } + } + } + + for (OpenOrderPakoutParam param : list){ + doHttpRequest(param, "鍏ュ簱鍗曚笂鎶�", url, orderReportPath, null, "127.0.0.1"); + + } + + return 200; + + //return doHttpRequest(list, "鍏ュ簱鍗曚笂鎶�", url, orderReportPath, null, "127.0.0.1"); + + } + + @Override + public List<String> selectOrderInformation(Map<String, String> param) { + ArrayList<String> list = new ArrayList<>(); + String name = param.get("name"); + User user = userService.selectOne(new EntityWrapper<User>().eq("username", name)); + if (Cools.isEmpty(user)){ + return list; + } + List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("create_by", user.getId())); + if (Cools.isEmpty(orderList)){ + return list; + } + for (Order order : orderList){ + if (order.getSettle() ==1 || order.getSettle() ==2){ + list.add(order.getOrderNo()); + } + } + + return list; + } + + private OpenOrderPakoutParam checkOrder(List<OpenOrderPakoutParam> list, String orderNo){ + + for (OpenOrderPakoutParam param : list){ + + if(Cools.eq("璋冩嫧鍏ュ簱鍗�",param.getType()) && Cools.isEmpty(orderNo)){ + return param; + } + + //鍒ゆ柇鏄惁鍖呭惈閲嶅鐨勮鍗曞彿 + if(Cools.eq(param.getCCode(),orderNo)){ + return param; + } + } + + return null; + + } + + private OpenOrderPakoutParam.Body checkOrderDetl(List<OpenOrderPakoutParam.Body> bodyList, String matnr){ + + for (OpenOrderPakoutParam.Body param : bodyList){ + //鍒ゆ柇鏄惁鍖呭惈閲嶅鐨勮鍗曞彿 + if(Cools.eq(param.getCInvCode(),matnr)){ + return param; + } + } + + return null; + + } + + private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ + String response = ""; + boolean success = false; + + try { + response = new HttpHandler.Builder() + .setUri(url) + .setPath(path) + .setJson(JSONObject.toJSONString(requestParam)) + .build() + .doPost(); + + response = response.replace("\\", ""); + response = response.substring(1,response.length()-1); + + JSONObject jsonObject = JSON.parseObject(response); + JSONArray jsonArray = (JSONArray)jsonObject.get(""); + JSONObject jsonResult = (JSONObject) jsonArray.get(0); + if(Cools.isEmpty(jsonResult.get("ErrorCode"))){ + throw new CoolException(jsonResult.get("errorMsg").toString()); + } + + int code = Integer.parseInt(jsonResult.get("ErrorCode").toString()); + if(code != 1){ + throw new CoolException(jsonResult.get("errorMsg").toString()); + } + success = true; + return code; + }catch (Exception e){ + log.error(e.getMessage()); + throw new CoolException(e.getMessage()); + }finally { + apiLogService.save( + namespace, + url + path, + appkey, + ip, + JSON.toJSONString(JSONObject.toJSONString(requestParam)), + response, + success + ); + } + + } + } -- Gitblit v1.9.1