From 954799493a5d4a63a8844fd53e8a14c8ea9f6cea Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期六, 24 五月 2025 21:24:38 +0800 Subject: [PATCH] 13 --- src/main/java/com/zy/asrs/entity/param/CombParam.java | 4 src/main/java/com/zy/asrs/third/CodeParam.java | 18 src/main/java/com/zy/asrs/entity/OrderDetlReportLog.java | 363 +++++++++++ src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 39 + pom.xml | 2 src/main/java/com/zy/asrs/controller/OpenMesController.java | 225 +++++++ src/main/java/com/zy/asrs/mapper/OrderDetlReportLogMapper.java | 15 src/main/java/com/zy/asrs/third/CodeDataParam.java | 17 src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java | 3 src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java | 15 src/main/java/com/zy/common/model/MesPakinParam.java | 28 src/main/java/com/zy/asrs/entity/WrkDetl.java | 2 src/main/java/com/zy/asrs/third/TokenUtils.java | 44 + src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 380 ++++++----- src/main/java/com/zy/asrs/service/impl/OrderDetlReportServiceImpl.java | 21 src/main/java/com/zy/common/model/DetlDto.java | 7 src/main/java/com/zy/asrs/controller/MatController.java | 25 src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java | 3 src/main/java/com/zy/asrs/service/MobileService.java | 7 license.lic | 0 src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java | 1 src/main/java/com/zy/asrs/entity/param/CheckOrderParam.java | 15 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 7 src/main/java/com/zy/asrs/controller/OpenController.java | 4 src/main/java/com/zy/asrs/service/impl/OrderDetlReportLogServiceImpl.java | 13 src/main/java/com/zy/asrs/entity/ManLocDetl.java | 6 src/main/java/com/zy/asrs/service/OrderDetlReportService.java | 12 /dev/null | 16 src/main/java/com/zy/asrs/entity/param/CheckResult.java | 14 src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java | 8 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 4 src/main/java/com/zy/asrs/service/ManLocDetlService.java | 3 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 160 ++-- src/main/java/com/zy/asrs/service/OrderDetlReportLogService.java | 8 src/main/java/com/zy/asrs/mapper/OrderDetlReportMapper.java | 20 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 8 src/main/resources/application.yml | 9 src/main/java/com/zy/asrs/entity/OrderDetlReport.java | 363 +++++++++++ src/main/java/com/zy/asrs/third/MesResponse.java | 12 39 files changed, 1,616 insertions(+), 285 deletions(-) diff --git a/license.lic b/license.lic index 41b3277..9b49f06 100644 --- a/license.lic +++ b/license.lic Binary files differ diff --git a/pom.xml b/pom.xml index ede5b05..f99c5d4 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> - <scope>provided</scope> + <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java index 68069f7..5a0229f 100644 --- a/src/main/java/com/zy/asrs/controller/MatController.java +++ b/src/main/java/com/zy/asrs/controller/MatController.java @@ -16,6 +16,10 @@ import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.result.KeyValueVo; import com.zy.asrs.service.MatService; +import com.zy.asrs.service.MobileService; +import com.zy.asrs.third.CodeDataParam; +import com.zy.asrs.third.CodeParam; +import com.zy.asrs.third.TokenUtils; import com.zy.asrs.utils.MatExcelListener; import com.zy.common.CodeRes; import com.zy.common.config.AdminInterceptor; @@ -24,6 +28,7 @@ import com.zy.common.utils.QrCode; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -40,8 +45,15 @@ @Autowired private MatService matService; + + @Autowired + private MobileService mobileService; + @Autowired private SnowflakeIdWorker snowflakeIdWorker; + + @Value("mes.url") + private String url; @RequestMapping(value = "/mat/auto/matnr/auth") public R autoMatnr(){ @@ -83,6 +95,19 @@ return R.ok(matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnr))); } + @RequestMapping(value = "/mat/tiaoma/auth") + @ManagerAuth + public R findByTiaoMa(@RequestParam("matnr") String matnr) { + List<CodeDataParam> data = mobileService.getData(TokenUtils.getToken(url), new CodeParam(Arrays.asList(matnr))); + CodeDataParam codeDataParam = data.get(0); + Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", codeDataParam.getProductionCode())); + mat.setMatnr(codeDataParam.getProductionCode()); + mat.setSafeQty(codeDataParam.getQty()); + mat.setUnit(codeDataParam.getBatchNum()); + mat.setMemo(matnr); + return R.ok(mat); + } + @RequestMapping(value = "/mat/list/auth") @ManagerAuth public R list(@RequestParam(defaultValue = "1")Integer curr, diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 7547998..27a4246 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -190,7 +190,7 @@ if (Cools.isEmpty(param.getOrderType())) { return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); } - if (Cools.isEmpty(param.getOrderDetails())) { + if (Cools.isEmpty(param.getDetails())) { return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); } openService.pakinOrderCreate(param); @@ -232,7 +232,7 @@ if (Cools.isEmpty(param.getOrderType())) { return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); } - if (Cools.isEmpty(param.getOrderDetails())) { + if (Cools.isEmpty(param.getDetails())) { return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); } openService.pakoutOrderCreate(param); diff --git a/src/main/java/com/zy/asrs/controller/OpenMesController.java b/src/main/java/com/zy/asrs/controller/OpenMesController.java new file mode 100644 index 0000000..15d8a29 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/OpenMesController.java @@ -0,0 +1,225 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.annotations.AppAuth; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.R; +import com.core.exception.CoolException; +import com.zy.asrs.entity.InventoryCheckOrder; +import com.zy.asrs.entity.InventoryCheckOrderDetl; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.entity.param.*; +import com.zy.asrs.service.*; +import com.zy.common.web.BaseController; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Created by vincent on 2022/4/8 + */ +@Slf4j +@RestController +@RequestMapping("open/wms") +public class OpenMesController extends BaseController { + + private static final boolean auth = true; + public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{ + add("ea1f0459efc02a79f046f982767939ae"); + }}; + + @Autowired + private OpenService openService; + + @Autowired + private ManLocDetlService manLocDetlService; + + @Autowired + private WrkMastService wrkMastService; + + @Autowired + private InventoryCheckOrderService inventoryCheckOrderService; + + @Autowired + private InventoryCheckOrderDetlService inventoryCheckOrderDetlService; + + + @PostMapping("/mat/sync/default/v1") + @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛") + public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey, + @RequestBody(required = false) MatSyncParam param, + HttpServletRequest request) { + auth(appkey, param, request); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + openService.syncMat(param); + return R.ok(); + } + + @PostMapping("/inventory/result") + @AppAuth(memo = "鐩樼偣缁撴灉鍚屾鎺ュ彛") + public synchronized R inventory(@RequestHeader(required = false) String appkey, + @RequestBody(required = false) CheckResult param, + HttpServletRequest request) { + auth(appkey, param, request); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); + if (Cools.isEmpty(wrkMast)) { + return R.error("鏃犳硶閫氳繃鎵樼洏鐮佹壘鍒拌宸ヤ綔妗�,璇锋鏌ユ墭鐩樼爜鏄惁姝g‘"); + } + LocDetlAdjustParam adjustParam = new LocDetlAdjustParam(); + adjustParam.setLocNo(wrkMast.getWrkSts() < 100 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo()); + List<LocDetlAdjustParam.LocDetlAdjust> list = new ArrayList<>(); + param.getDetails().forEach(elem -> { + list.add(new LocDetlAdjustParam.LocDetlAdjust(elem.getMatnr(), elem.getBatch(), elem.getActulQty(), elem.getDanger())); + }); + manLocDetlService.adjustLocDetl2(adjustParam, getUserId()); + return R.ok(); + } + + @PostMapping("/orderSync/default/v1") + @AppAuth(memo = "璁㈠崟淇℃伅鍚屾鎺ュ彛") + public synchronized R syncOrderInfo(@RequestHeader(required = false) String appkey, + @RequestBody(required = false) GTOrderParam param, + HttpServletRequest request) { + auth(appkey, param, request); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + + return R.ok(); + } + + + /** + * 娣诲姞鍏ュ簱鍗� + */ + @PostMapping("/order/pakin/default/v1") + @AppAuth(memo = "鍏ュ簱鍗曟嵁涓嬪彂") + public synchronized R pakinOrderCreate(@RequestHeader(required = false) String appkey, + @RequestBody OpenOrderPakinParam param, + HttpServletRequest request) { + auth(appkey, param, request); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + if (Cools.isEmpty(param.getOrderNo())) { + return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getOrderType())) { + return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getDetails())) { + return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); + } + openService.pakinOrderCreate(param); + return R.ok(); + } + + + /** + * 娣诲姞鍑哄簱鍗� + */ + @PostMapping("/order/pakout/default/v1") + @AppAuth(memo = "娣诲姞璁㈠崟鍑哄簱") + public synchronized R pakoutOrderCreate(@RequestHeader(required = false) String appkey, + @RequestBody OpenOrderPakoutParam param, + HttpServletRequest request) { + auth(appkey, param, request); + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + if (Cools.isEmpty(param.getLgort())) { + return R.error("鍗曟嵁缂栧彿[lgort]涓嶈兘涓虹┖"); + } + if (!param.getLgort().equals("5006")) { + return R.ok(); + } + if (Cools.isEmpty(param.getOrderNo())) { + return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getOrderType())) { + return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getDetails())) { + return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); + } + openService.pakoutOrderCreate(param); + return R.ok(); + } + + /** + * 娣诲姞鐩樼偣鍗� + */ + @PostMapping("/inventory/trigger/v1") + @AppAuth(memo = "娣诲姞鐩樼偣鍗�") + public synchronized R check(@RequestHeader(required = false) String appkey, + @RequestBody CheckOrderParam param, + HttpServletRequest request) { + auth(appkey, param, request); + String orderNo = param.getOrderNo(); + long time = new Date().getTime(); + if (Cools.isEmpty(orderNo)) { + switch (param.getArea()) { + case "鍫嗗灈鏈�": + orderNo = "DDJ" + time; + break; + case "鍥涘悜搴�": + orderNo = "SXK" + time; + break; + case "CTU": + orderNo = "CTU" + time; + break; + } + param.setOrderNo(orderNo); + } + + int count = inventoryCheckOrderService.selectCount(new EntityWrapper<InventoryCheckOrder>().eq("order_no", orderNo)); + if (count > 0) { + return R.parse("鍗曟嵁缂栧彿宸茬粡瀛樺湪锛�" + orderNo); + } + InventoryCheckOrder checkOrder = new InventoryCheckOrder(); + checkOrder.setOrderNo(orderNo); + checkOrder.setCreateBy(getUserId().toString()); + checkOrder.setCreateTime(new Date()); + checkOrder.setStatus("1"); + param.getDetails().forEach(elem -> { + checkOrder.setArea(param.getArea()); + InventoryCheckOrderDetl detail = new InventoryCheckOrderDetl(); + detail.setMatnr(elem.getMatnr()); + detail.setBatch(elem.getBatch()); + inventoryCheckOrderDetlService.insert(detail); + }); + inventoryCheckOrderService.insert(checkOrder); + + + return R.ok(); + } + + + private void auth(String appkey, Object obj, HttpServletRequest request) { + log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getRequestURI(), appkey, JSON.toJSONString(obj)); + request.setAttribute("cache", obj); + if (!auth) { + return; + } + if (Cools.isEmpty(appkey)) { + throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�"); + } + if (!APP_KEY_LIST.contains(appkey)) { + throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�"); + } + } + + +} diff --git a/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java b/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java index bff935b..6a938b8 100644 --- a/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java +++ b/src/main/java/com/zy/asrs/entity/InventoryCheckOrder.java @@ -56,6 +56,7 @@ @TableField("create_by") private String createBy; + public InventoryCheckOrder() {} public InventoryCheckOrder(Integer id,String orderNo,String area,Date createTime,String createBy) { diff --git a/src/main/java/com/zy/asrs/entity/ManLocDetl.java b/src/main/java/com/zy/asrs/entity/ManLocDetl.java index 17522d5..40770f9 100644 --- a/src/main/java/com/zy/asrs/entity/ManLocDetl.java +++ b/src/main/java/com/zy/asrs/entity/ManLocDetl.java @@ -170,6 +170,12 @@ private Integer status; /** + * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + private Integer danger; + + /** * 娣诲姞浜哄憳 */ @ApiModelProperty(value= "娣诲姞浜哄憳") diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlReport.java b/src/main/java/com/zy/asrs/entity/OrderDetlReport.java new file mode 100644 index 0000000..5d2c626 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/OrderDetlReport.java @@ -0,0 +1,363 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.common.utils.Synchro; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("man_order_detl_report") +public class OrderDetlReport implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 鏁伴噺 + */ + @ApiModelProperty(value= "鏁伴噺") + private Double anfme; + + /** + * 鎵樼洏鏉$爜 + */ + @ApiModelProperty(value= "鎵樼洏鏉$爜") + private String zpallet; + + /** + * 鐗╂枡 + */ + @ApiModelProperty(value= "鍟嗗搧缂栧彿") + private String matnr; + + /** + * 鐗╂枡鎻忚堪 + */ + @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + private String maktx; + + /** + * 鎵瑰彿 + */ + @ApiModelProperty(value= "鎵瑰彿") + private String batch; + + /** + * 鍗曟嵁缂栧彿 + */ + @ApiModelProperty(value= "鍗曟嵁缂栧彿") + @TableField("order_no") + private String orderNo; + + /** + * 瑙勬牸 + */ + @ApiModelProperty(value= "瑙勬牸") + private String specs; + + /** + * 鍨嬪彿 + */ + @ApiModelProperty(value= "鍨嬪彿") + private String model; + + /** + * 棰滆壊 + */ + @ApiModelProperty(value= "棰滆壊") + private String color; + + /** + * 鍝佺墝 + */ + @ApiModelProperty(value= "鍝佺墝") + private String brand; + + /** + * 鍗曚綅 + */ + @ApiModelProperty(value= "鍗曚綅") + private String unit; + + /** + * 鍗曚环 + */ + @ApiModelProperty(value= "鍗曚环") + private Double price; + + /** + * sku + */ + @ApiModelProperty(value= "sku") + private String sku; + + /** + * 鍗曚綅閲� + */ + @ApiModelProperty(value= "鍗曚綅閲�") + private Double units; + + /** + * 鏉$爜 + */ + @ApiModelProperty(value= "鏉$爜") + private String barcode; + + /** + * 浜у湴 + */ + @ApiModelProperty(value= "浜у湴") + private String origin; + + /** + * 鍘傚 + */ + @ApiModelProperty(value= "鍘傚") + private String manu; + + /** + * 鐢熶骇鏃ユ湡 + */ + @ApiModelProperty(value= "鐢熶骇鏃ユ湡") + @TableField("manu_date") + private String manuDate; + + /** + * 鍝侀」鏁� + */ + @ApiModelProperty(value= "鍝侀」鏁�") + @TableField("item_num") + private String itemNum; + + /** + * 瀹夊叏搴撳瓨閲� + */ + @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") + @TableField("safe_qty") + private Double safeQty; + + /** + * 閲嶉噺 + */ + @ApiModelProperty(value= "閲嶉噺") + private Double weight; + + /** + * 闀垮害 + */ + @ApiModelProperty(value= "闀垮害") + private Double length; + + /** + * 浣撶Н + */ + @ApiModelProperty(value= "浣撶Н") + private Double volume; + + /** + * 涓夋柟缂栫爜 + */ + @ApiModelProperty(value= "涓夋柟缂栫爜") + @TableField("three_code") + private String threeCode; + + /** + * 渚涘簲鍟� + */ + @ApiModelProperty(value= "渚涘簲鍟�") + private String supp; + + /** + * 渚涘簲鍟嗙紪鐮� + */ + @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�") + @TableField("supp_code") + private String suppCode; + + /** + * 鏄惁鎵规 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @TableField("be_batch") + private Integer beBatch; + + /** + * 淇濊川鏈� + */ + @ApiModelProperty(value= "淇濊川鏈�") + @TableField("dead_time") + private String deadTime; + + /** + * 棰勮澶╂暟 + */ + @ApiModelProperty(value= "棰勮澶╂暟") + @TableField("dead_warn") + private Integer deadWarn; + + /** + * 鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 + */ + @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") + private Integer source; + + /** + * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") + private Integer inspect; + + /** + * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + private Integer danger; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("modi_user") + private Long modiUser; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("modi_time") + private Date modiTime; + + /** + * 鍒涘缓鑰� + */ + @ApiModelProperty(value= "鍒涘缓鑰�") + @TableField("appe_user") + private Long appeUser; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("appe_time") + private Date appeTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + @ApiModelProperty(value= "棰勭暀1") + private String temp1; + @ApiModelProperty(value= "棰勭暀1") + private String temp2; + @ApiModelProperty(value= "棰勭暀1") + private String temp3; + @ApiModelProperty(value= "棰勭暀1") + private String temp4; + + + public String getBeBatch$(){ + if (null == this.beBatch){ return null; } + switch (this.beBatch){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.beBatch); + } + } + + public String getSource$(){ + if (null == this.source){ return null; } + switch (this.source){ + case 1: + return "鍒堕��"; + case 2: + return "閲囪喘"; + case 3: + return "澶栧崗"; + default: + return String.valueOf(this.source); + } + } + + public String getInspect$(){ + if (null == this.inspect){ return null; } + switch (this.inspect){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.inspect); + } + } + + public String getDanger$(){ + if (null == this.danger){ return null; } + switch (this.danger){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.danger); + } + } + + public String getModiUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.modiUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getModiTime$(){ + if (Cools.isEmpty(this.modiTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); + } + + public String getAppeUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.appeUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + public void sync(Object source) { + Synchro.Copy(source, this); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlReportLog.java b/src/main/java/com/zy/asrs/entity/OrderDetlReportLog.java new file mode 100644 index 0000000..d02db8a --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/OrderDetlReportLog.java @@ -0,0 +1,363 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.common.utils.Synchro; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("man_order_detl_report_log") +public class OrderDetlReportLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 鏁伴噺 + */ + @ApiModelProperty(value= "鏁伴噺") + private Double anfme; + + /** + * 鎵樼洏鏉$爜 + */ + @ApiModelProperty(value= "鎵樼洏鏉$爜") + private String zpallet; + + /** + * 鐗╂枡 + */ + @ApiModelProperty(value= "鍟嗗搧缂栧彿") + private String matnr; + + /** + * 鐗╂枡鎻忚堪 + */ + @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + private String maktx; + + /** + * 鎵瑰彿 + */ + @ApiModelProperty(value= "鎵瑰彿") + private String batch; + + /** + * 鍗曟嵁缂栧彿 + */ + @ApiModelProperty(value= "鍗曟嵁缂栧彿") + @TableField("order_no") + private String orderNo; + + /** + * 瑙勬牸 + */ + @ApiModelProperty(value= "瑙勬牸") + private String specs; + + /** + * 鍨嬪彿 + */ + @ApiModelProperty(value= "鍨嬪彿") + private String model; + + /** + * 棰滆壊 + */ + @ApiModelProperty(value= "棰滆壊") + private String color; + + /** + * 鍝佺墝 + */ + @ApiModelProperty(value= "鍝佺墝") + private String brand; + + /** + * 鍗曚綅 + */ + @ApiModelProperty(value= "鍗曚綅") + private String unit; + + /** + * 鍗曚环 + */ + @ApiModelProperty(value= "鍗曚环") + private Double price; + + /** + * sku + */ + @ApiModelProperty(value= "sku") + private String sku; + + /** + * 鍗曚綅閲� + */ + @ApiModelProperty(value= "鍗曚綅閲�") + private Double units; + + /** + * 鏉$爜 + */ + @ApiModelProperty(value= "鏉$爜") + private String barcode; + + /** + * 浜у湴 + */ + @ApiModelProperty(value= "浜у湴") + private String origin; + + /** + * 鍘傚 + */ + @ApiModelProperty(value= "鍘傚") + private String manu; + + /** + * 鐢熶骇鏃ユ湡 + */ + @ApiModelProperty(value= "鐢熶骇鏃ユ湡") + @TableField("manu_date") + private String manuDate; + + /** + * 鍝侀」鏁� + */ + @ApiModelProperty(value= "鍝侀」鏁�") + @TableField("item_num") + private String itemNum; + + /** + * 瀹夊叏搴撳瓨閲� + */ + @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") + @TableField("safe_qty") + private Double safeQty; + + /** + * 閲嶉噺 + */ + @ApiModelProperty(value= "閲嶉噺") + private Double weight; + + /** + * 闀垮害 + */ + @ApiModelProperty(value= "闀垮害") + private Double length; + + /** + * 浣撶Н + */ + @ApiModelProperty(value= "浣撶Н") + private Double volume; + + /** + * 涓夋柟缂栫爜 + */ + @ApiModelProperty(value= "涓夋柟缂栫爜") + @TableField("three_code") + private String threeCode; + + /** + * 渚涘簲鍟� + */ + @ApiModelProperty(value= "渚涘簲鍟�") + private String supp; + + /** + * 渚涘簲鍟嗙紪鐮� + */ + @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�") + @TableField("supp_code") + private String suppCode; + + /** + * 鏄惁鎵规 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @TableField("be_batch") + private Integer beBatch; + + /** + * 淇濊川鏈� + */ + @ApiModelProperty(value= "淇濊川鏈�") + @TableField("dead_time") + private String deadTime; + + /** + * 棰勮澶╂暟 + */ + @ApiModelProperty(value= "棰勮澶╂暟") + @TableField("dead_warn") + private Integer deadWarn; + + /** + * 鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 + */ + @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") + private Integer source; + + /** + * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") + private Integer inspect; + + /** + * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + private Integer danger; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("modi_user") + private Long modiUser; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("modi_time") + private Date modiTime; + + /** + * 鍒涘缓鑰� + */ + @ApiModelProperty(value= "鍒涘缓鑰�") + @TableField("appe_user") + private Long appeUser; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("appe_time") + private Date appeTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + @ApiModelProperty(value= "棰勭暀1") + private String temp1; + @ApiModelProperty(value= "棰勭暀1") + private String temp2; + @ApiModelProperty(value= "棰勭暀1") + private String temp3; + @ApiModelProperty(value= "棰勭暀1") + private String temp4; + + + public String getBeBatch$(){ + if (null == this.beBatch){ return null; } + switch (this.beBatch){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.beBatch); + } + } + + public String getSource$(){ + if (null == this.source){ return null; } + switch (this.source){ + case 1: + return "鍒堕��"; + case 2: + return "閲囪喘"; + case 3: + return "澶栧崗"; + default: + return String.valueOf(this.source); + } + } + + public String getInspect$(){ + if (null == this.inspect){ return null; } + switch (this.inspect){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.inspect); + } + } + + public String getDanger$(){ + if (null == this.danger){ return null; } + switch (this.danger){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.danger); + } + } + + public String getModiUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.modiUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getModiTime$(){ + if (Cools.isEmpty(this.modiTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); + } + + public String getAppeUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.appeUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + public void sync(Object source) { + Synchro.Copy(source, this); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java index dc93a16..046f448 100644 --- a/src/main/java/com/zy/asrs/entity/WrkDetl.java +++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java @@ -230,7 +230,7 @@ private Integer inspect; /** - * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + * 1姝e父锛�2鎶ュ簾锛�3闇�杩斿伐 */ @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") private Integer danger; diff --git a/src/main/java/com/zy/asrs/entity/param/CheckOrderParam.java b/src/main/java/com/zy/asrs/entity/param/CheckOrderParam.java new file mode 100644 index 0000000..72da8f3 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/CheckOrderParam.java @@ -0,0 +1,15 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class CheckOrderParam implements Serializable { + private String orderNo; + private String area; + private String status; + + private List<MatDto> details; +} diff --git a/src/main/java/com/zy/asrs/entity/param/CheckResult.java b/src/main/java/com/zy/asrs/entity/param/CheckResult.java new file mode 100644 index 0000000..840c351 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/CheckResult.java @@ -0,0 +1,14 @@ +package com.zy.asrs.entity.param; + +import com.zy.common.model.DetlDto; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class CheckResult implements Serializable { + private String barcode; + + private List<DetlDto> details; +} diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java index 3c27eb1..761e0f4 100644 --- a/src/main/java/com/zy/asrs/entity/param/CombParam.java +++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java @@ -22,9 +22,13 @@ private List<CombMat> combMats; + @Data public static class CombMat { + // 鏉$爜 + private String threeCode; + // 鐗╂枡缂栧彿 private String matnr; diff --git a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java index 381d7c2..eff8c87 100644 --- a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java +++ b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java @@ -30,11 +30,19 @@ // 鍙樻洿鏁伴噺 private Double count; + private Integer danger; + public LocDetlAdjust(String matnr, String batch, Double count) { this.matnr = matnr; this.batch = batch; this.count = count; } + public LocDetlAdjust(String matnr, String batch, Double count,Integer danger ) { + this.matnr = matnr; + this.batch = batch; + this.count = count; + this.danger = danger; + } } public void integrate() { diff --git a/src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java b/src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java index 20d2d32..1dcdb72 100644 --- a/src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java +++ b/src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java @@ -21,8 +21,9 @@ private String department; //閮ㄩ棬 private String businessType; //涓氬姟绫诲瀷 private String user; //鍒跺崟浜� + private String quality; - private List<DetlDto> orderDetails; //鐗╂枡鍒楄〃 + private List<DetlDto> details; //鐗╂枡鍒楄〃 } diff --git a/src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java b/src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java index f2c9068..25d69bb 100644 --- a/src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java +++ b/src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java @@ -25,8 +25,9 @@ private String department; //閮ㄩ棬 private String businessType; //涓氬姟绫诲瀷 private String user; //鍒跺崟浜� + private String quality; - private List<DetlDto> orderDetails; + private List<DetlDto> details; private String lgort; diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlReportLogMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlReportLogMapper.java new file mode 100644 index 0000000..9099237 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlReportLogMapper.java @@ -0,0 +1,15 @@ + +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.OrderDetlReport; +import com.zy.asrs.entity.OrderDetlReportLog; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface OrderDetlReportLogMapper extends BaseMapper<OrderDetlReportLog> { + + +} diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlReportMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlReportMapper.java new file mode 100644 index 0000000..bdd1f5b --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlReportMapper.java @@ -0,0 +1,20 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlReport; +import com.zy.asrs.entity.OrderDetlReportLog; +import com.zy.asrs.entity.param.PrintDataDto; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface OrderDetlReportMapper extends BaseMapper<OrderDetlReport> { + + +} diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java index 7d3d0e8..a2e2f3b 100644 --- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java +++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java @@ -61,6 +61,9 @@ void adjustLocDetl(LocDetlAdjustParam param, Long userId); + void adjustLocDetl2(LocDetlAdjustParam param, Long userId); + + Page<ManLocDetl> selectAllPage(Page<ManLocDetl> param); List<ManLocDetl> getStockStatisExcel(); diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index 4b14a68..fc1e1a4 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -9,8 +9,11 @@ import com.zy.asrs.entity.param.MobileAdjustParam; import com.zy.asrs.entity.param.OffSaleParam; import com.zy.asrs.entity.param.pdaAdjustParam; +import com.zy.asrs.third.CodeDataParam; +import com.zy.asrs.third.CodeParam; import java.util.Date; +import java.util.List; import java.util.Map; public interface MobileService { @@ -62,4 +65,8 @@ void pingKuShelves(CombParam combParam, Long userId); void pingKuUnShelves(CombParam combParam, Long userId); + + List<CodeDataParam> getData(Map<String, Object> token, CodeParam codeParam); + + } diff --git a/src/main/java/com/zy/asrs/service/OrderDetlReportLogService.java b/src/main/java/com/zy/asrs/service/OrderDetlReportLogService.java new file mode 100644 index 0000000..337cbb7 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderDetlReportLogService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderDetlReportLog; + +public interface OrderDetlReportLogService extends IService<OrderDetlReportLog> { + +} diff --git a/src/main/java/com/zy/asrs/service/OrderDetlReportService.java b/src/main/java/com/zy/asrs/service/OrderDetlReportService.java new file mode 100644 index 0000000..37502d9 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderDetlReportService.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlReport; + +import java.util.List; + +public interface OrderDetlReportService extends IService<OrderDetlReport> { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java index 9be4095..4b18a02 100644 --- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java @@ -172,6 +172,45 @@ manLocDetl.setUnit(mat.getUnit()); manLocDetl.setBarcode(mat.getBarcode()); manLocDetl.setPrice(mat.getPrice()); + manLocDetl.setDanger(locDetlAdjust.getDanger()); + SaasUtils.insertLog(3,manLocDetl.getLocNo(), manLocDetl.getMatnr(),manLocDetl.getAnfme()); + this.baseMapper.insert(manLocDetl); + } + } + + @Transactional + @Override + public void adjustLocDetl2(LocDetlAdjustParam param, Long userId) { + Date now = new Date(); + this.baseMapper.delete(new EntityWrapper<ManLocDetl>() + .eq("loc_no", param.getLocNo())); + for (LocDetlAdjustParam.LocDetlAdjust locDetlAdjust : param.getList()) { + Mat mat = matService.selectOne(new EntityWrapper<Mat>() + .eq("matnr", locDetlAdjust.getMatnr())); + if (mat == null) { + throw new CoolException("鏃犳硶鎵惧埌闇�瑕佽皟鏁寸殑鐗╂枡,璇疯仈绯荤鐞嗗憳"); + } + Node node = nodeService.selectOne(new EntityWrapper<Node>() + .eq("uuid", param.getLocNo())); + if (node == null) { + throw new CoolException("鏃犳硶鎵惧埌闇�瑕佽皟鏁寸殑搴撲綅,璇疯仈绯荤鐞嗗憳"); + + } + ManLocDetl manLocDetl = new ManLocDetl(); + manLocDetl.setLocNo(param.getLocNo()); + manLocDetl.setNodeId(node.getId()); + manLocDetl.setZpallet(mat.getBarcode()); + manLocDetl.setAnfme(locDetlAdjust.getCount()); + manLocDetl.setMatnr(mat.getMatnr()); + manLocDetl.setMaktx(mat.getMaktx()); + manLocDetl.setName(mat.getName()); + manLocDetl.setSpecs(mat.getSpecs()); + manLocDetl.setModel(mat.getModel()); + manLocDetl.setBatch(locDetlAdjust.getBatch()); + manLocDetl.setUnit(mat.getUnit()); + manLocDetl.setBarcode(mat.getBarcode()); + manLocDetl.setPrice(mat.getPrice()); + manLocDetl.setDanger(locDetlAdjust.getDanger()); SaasUtils.insertLog(3,manLocDetl.getLocNo(), manLocDetl.getMatnr(),manLocDetl.getAnfme()); this.baseMapper.insert(manLocDetl); } diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index e931c08..e9f38e3 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -11,10 +11,13 @@ import com.zy.asrs.mapper.BasDevpMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; +import com.zy.asrs.third.CodeDataParam; +import com.zy.asrs.third.CodeParam; +import com.zy.asrs.third.MesResponse; +import com.zy.asrs.third.TokenUtils; import com.zy.asrs.utils.MatUtils; import com.zy.common.constant.AgvSiteConstant; import com.zy.common.constant.ApiInterfaceConstant; -import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; import com.zy.common.model.MesCombParam; @@ -22,10 +25,12 @@ import com.zy.common.utils.HttpHandler; 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 javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -84,6 +89,12 @@ @Resource private BasDevpMapper basDevpMapper; + @Value("mes.url") + private String url; + + @Value("mes.pakin") + private String code; + @Override public R inLocCallAgv(String sta, String inSta) { @@ -108,7 +119,7 @@ default: } int count = wrkMastService.selectCount(wrapper); - log.info("鍏ュ簱鍛煎彨agv鍛煎彨绔欑偣锛歿}锛岀洰鏍囩珯鐐癸細{},鍑哄簱浠诲姟鏁帮細{}",sta,inSta,count); + log.info("鍏ュ簱鍛煎彨agv鍛煎彨绔欑偣锛歿}锛岀洰鏍囩珯鐐癸細{},鍑哄簱浠诲姟鏁帮細{}", sta, inSta, count); if (count != 0) { return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟"); } @@ -180,10 +191,10 @@ return R.parse("娌℃湁鎵惧埌璇ョ珯鐐圭殑鍏ュ簱鏄犲皠锛�" + site); } JSONObject jsonObject = new JSONObject(); - jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� - jsonObject.put("ctnrTyp","2"); // 瀹瑰櫒绫诲瀷2 - jsonObject.put("stgBinCode",staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� - jsonObject.put("indBind","0"); // 1缁戝畾锛�0瑙g粦 + jsonObject.put("reqCode", UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� + jsonObject.put("ctnrTyp", "2"); // 瀹瑰櫒绫诲瀷2 + jsonObject.put("stgBinCode", staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� + jsonObject.put("indBind", "0"); // 1缁戝畾锛�0瑙g粦 String body = jsonObject.toJSONString(); String response = ""; @@ -227,14 +238,14 @@ private boolean bindPodAndBerth(String sta) { String staMap = AgvSiteConstant.SiteMap.get(sta); if (staMap == null) { - log.error("娌℃湁鎵惧埌璇ョ珯鐐圭殑鍏ュ簱鏄犲皠:{}",sta); + log.error("娌℃湁鎵惧埌璇ョ珯鐐圭殑鍏ュ簱鏄犲皠:{}", sta); return false; } JSONObject jsonObject = new JSONObject(); - jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� - jsonObject.put("ctnrTyp","2"); // 瀹瑰櫒绫诲瀷2 - jsonObject.put("stgBinCode",staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� - jsonObject.put("indBind","1"); // 1缁戝畾锛�0瑙g粦 + jsonObject.put("reqCode", UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� + jsonObject.put("ctnrTyp", "2"); // 瀹瑰櫒绫诲瀷2 + jsonObject.put("stgBinCode", staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� + jsonObject.put("indBind", "1"); // 1缁戝畾锛�0瑙g粦 String body = jsonObject.toJSONString(); String response = ""; @@ -279,7 +290,7 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } - if(param.getCombMats().size()>1){ + if (param.getCombMats().size() > 1) { throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒"); } param.getCombMats().forEach(elem -> { @@ -287,17 +298,17 @@ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). eq("zpallet", param.getBarcode()) .eq("io_status", "N") - .eq("matnr",elem.getMatnr()).eq("batch",elem.getBatch())) > 0) { + .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch())) > 0) { throw new CoolException(param.getBarcode() + "宸叉湁鐩稿悓鏁版嵁"); } }); - if(param.getBarcode().length()!=8){ + if (param.getBarcode().length() != 8) { throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode()); } - int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); - int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode())); // int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode())); if (countLoc > 0 || countWrk > 0) { throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); @@ -316,7 +327,7 @@ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). eq("zpallet", param.getBarcode()) .eq("io_status", "N") - .eq("matnr",elem.getMatnr()).eq("batch",elem.getBatch())) > 0) { + .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch())) > 0) { throw new CoolException(param.getBarcode() + "宸叉湁鐩稿悓鏁版嵁"); } @@ -351,7 +362,7 @@ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } } - // 鍏宠仈缁勬墭 + // 鍏宠仈缁勬墭 } else { Order order = orderService.selectByNo(param.getOrderNo()); if (Cools.isEmpty(order) || order.getSettle() > 2) { @@ -360,9 +371,27 @@ // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); + List<String> codes=new ArrayList<>(); for (CombParam.CombMat elem : param.getCombMats()) { + codes.add(elem.getThreeCode()); + } + List<CodeDataParam> data = getData(TokenUtils.getToken(url), new CodeParam(codes)); + List<CombParam.CombMat> combMats = param.getCombMats(); + for (int i = 0; i < data.size(); i++) { - + //} + //for (CombParam.CombMat elem : param.getCombMats()) { + CombParam.CombMat elem = combMats.get(i); + CodeDataParam codeDataParam = data.get(i); + if (!codeDataParam.getQuality().equals(order.getShipCode())) { + throw new CoolException("鍗曟嵁璐ㄩ噺鐘舵�佸拰缁勬墭鐗╂枡涓嶅尮閰�"); + } + elem.setTemp1(codeDataParam.getQuality()); + elem.setAnfme(codeDataParam.getQty()); + elem.setBatch(codeDataParam.getBatchNum()); + elem.setThreeCode(codeDataParam.getBarcode()); + elem.setMatnr(codeDataParam.getProductionCode()); + elem.setMaktx(codeDataParam.getProductionName()); // param.getCombMats().forEach(elem -> { // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 @@ -379,8 +408,10 @@ } // DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() - , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getThreeCode() + , orderDetl.getManu(), orderDetl.getSku(), orderDetl.getSupp(), orderDetl.getTemp1(), orderDetl.getTemp2(), orderDetl.getTemp3(), orderDetl.getTemp4()); + detlDto.setTemp1(codeDataParam.getQuality()); + detlDto.setFromOrderNo(codeDataParam.getBarcode()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -407,17 +438,17 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setDanger(detlDto.getDanger()); waitPakin.setManu(detlDto.getMark()); //鏍囪 waitPakin.setOrigin(order.getItemName());//浠撳簱 waitPakin.setSupp(detlDto.getSuppName()); //渚涘簲鍟� waitPakin.setSku(detlDto.getCustomer()); //瀹㈡埛鍚嶇О - waitPakin.setThreeCode(detlDto.getOrderNo()); //u8鍙戣繃鏉ョ殑璁㈠崟鍙� - waitPakin.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿 + waitPakin.setThreeCode(detlDto.getFromOrderNo()); //鏉$爜 waitPakin.setTemp1(detlDto.getTemp1()); waitPakin.setTemp2(detlDto.getTemp2()); waitPakin.setTemp3(detlDto.getTemp3()); waitPakin.setTemp4(detlDto.getTemp4()); - int countWrk2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); + int countWrk2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode())); if (countWrk2 > 0) { throw new CoolException("宸ヤ綔妗f潯鐮佹暟鎹凡瀛樺湪===>>" + param.getBarcode()); } @@ -430,6 +461,27 @@ } + + public List<CodeDataParam> getData(Map<String, Object> token, CodeParam codeParam) { + String response = null; + try { + response = new HttpHandler.Builder() + .setHeaders(token) + .setUri(url) + .setPath(code) + .setJson(JSON.toJSONString(codeParam)) + .build() + .doPost(); + } catch (IOException e) { + throw new RuntimeException(e); + } + MesResponse jsonObject = JSON.parseObject(response, MesResponse.class); + if (jsonObject.getCode().equals(200)) { + return JSON.parseArray(jsonObject.getData(), CodeDataParam.class); + } + throw new CoolException(jsonObject.getMessage()); + } + @Override @Transactional public void mergeComb(CombParam param, Long userId) { @@ -437,7 +489,7 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } - if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)){ + if (param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)) { throw new CoolException("鍏ュ簱鐗╂枡鏁伴噺涓嶈兘涓虹┖"); } Order order = orderService.selectByNo(param.getOrderNo()); @@ -451,15 +503,15 @@ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); } - int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); - if (wrkMast.getWrkSts() != 14 && wrkMast.getIoType() != 104){ + if (wrkMast.getWrkSts() != 14 && wrkMast.getIoType() != 104) { throw new CoolException(param.getBarcode() + "璇ユ潯鐮佹暟鎹笉涓哄苟鏉垮嚭搴�"); } //璁剧疆闈瀗ull鎵瑰彿锛� for (CombParam.CombMat combMat : param.getCombMats()) { - if (combMat.getBatch() == null){ + if (combMat.getBatch() == null) { combMat.setBatch(""); } } @@ -501,9 +553,6 @@ } - - - } // 鍟嗗搧涓婃灦 @@ -518,15 +567,15 @@ } // 鑾峰彇鍟嗗搧鍒楄〃 - for(CombParam.CombMat combMat : param.getCombMats()){ + for (CombParam.CombMat combMat : param.getCombMats()) { Mat mat = matService.selectByMatnr(combMat.getMatnr()); - if (Cools.isEmpty(mat)){ + if (Cools.isEmpty(mat)) { throw new CoolException(combMat.getMatnr() + ":鍟嗗搧妗f涓嶅瓨鍦紒"); } - if (Cools.isEmpty(combMat.getAnfme()) || combMat.getAnfme()==0){ + if (Cools.isEmpty(combMat.getAnfme()) || combMat.getAnfme() == 0) { throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鏁伴噺鏈夎锛�"); } - if (Cools.isEmpty(combMat.getBatch())){ + if (Cools.isEmpty(combMat.getBatch())) { // throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); } ManLocDetl manLocDetl = new ManLocDetl(); @@ -547,16 +596,16 @@ @Override public void offSale(OffSaleParam offSaleParam) { ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); - if (Cools.isEmpty(manLocDetl)){ + if (Cools.isEmpty(manLocDetl)) { throw new CoolException("鏃犳鍟嗗搧锛�"); } double anfme = manLocDetl.getAnfme() - offSaleParam.getAnfme(); if (anfme < 0) { throw new CoolException("鍟嗗搧搴撳瓨涓嶈冻锛�"); - } else if (anfme == 0){ + } else if (anfme == 0) { manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); } - manLocDetlMapper.updateAnfme0(anfme,manLocDetl.getNodeId()); + manLocDetlMapper.updateAnfme0(anfme, manLocDetl.getNodeId()); } // 鏌ユ壘鍟嗗搧 @@ -615,7 +664,9 @@ // 娣诲姞鏄庣粏 for (WrkDetl wrkDetl : list) { - if (wrkDetl.getAnfme() == 0.0D) { continue; } + if (wrkDetl.getAnfme() == 0.0D) { + continue; + } // todo 鐩樼偣璁板綍銆佷繚瀛樿皟鏁磋褰� String orderNo = wrkDetl.getOrderNo(); Mat mat = matService.selectByMatnr(wrkDetl.getMatnr()); @@ -631,7 +682,7 @@ } // 淇敼鐩樼偣浠诲姟涓绘。鐘舵�� - wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0?"Y":"N"); + wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0 ? "Y" : "N"); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); if (!wrkMastService.updateById(wrkMast)) { @@ -697,40 +748,40 @@ } String response = ""; boolean success = false; - try { - response = new HttpHandler.Builder() - .setUri(MesConstant.URL) - .setPath(MesConstant.PACK_DOWN_URL) - .setJson(JSON.toJSONString(mesCombParam)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - success = true; - } else if (jsonObject.getInteger("code").equals(500)) { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); - throw new CoolException(jsonObject.getString("msg")); - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); - throw new CoolException("涓婃姤mes绯荤粺澶辫触"); - } - } catch (Exception e) { - log.error("fail", e); - throw new CoolException(e.getMessage()); - } finally { - try { - // 淇濆瓨鎺ュ彛鏃ュ織 - apiLogService.save( - "鎵撳寘涓嬬嚎甯墭涓婃姤", - MesConstant.URL + MesConstant.PACK_DOWN_URL, - null, - "127.0.0.1", - JSON.toJSONString(mesCombParam), - response, - success - ); - } catch (Exception e) { log.error("", e); } - } +// try { +// response = new HttpHandler.Builder() +// .setUri(url) +// .setPath(code) +// .setJson(JSON.toJSONString(mesCombParam)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("code").equals(200)) { +// success = true; +// } else if (jsonObject.getInteger("code").equals(500)) { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); +// throw new CoolException(jsonObject.getString("msg")); +// } else { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(mesCombParam), response); +// throw new CoolException("涓婃姤mes绯荤粺澶辫触"); +// } +// } catch (Exception e) { +// log.error("fail", e); +// throw new CoolException(e.getMessage()); +// } finally { +// try { +// // 淇濆瓨鎺ュ彛鏃ュ織 +// apiLogService.save( +// "鎵撳寘涓嬬嚎甯墭涓婃姤", +// MesConstant.URL + MesConstant.PACK_DOWN_URL, +// null, +// "127.0.0.1", +// JSON.toJSONString(mesCombParam), +// response, +// success +// ); +// } catch (Exception e) { log.error("", e); } +// } } @@ -740,7 +791,7 @@ openParam.setOrderNo(orderNo); openParam.setInboundDate(DateUtils.convert(now)); openParam.setOrderType("鎵撳寘鍏ュ簱鍗�"); - openParam.setOrderDetails(detlDtos); + openParam.setDetails(detlDtos); openService.pakinOrderCreate(openParam); Order order = orderService.selectByNo(orderNo); if (null == order) { @@ -806,19 +857,19 @@ BasDevp sta = basDevpService.checkSiteStatus(staNo); //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。 Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo)); - if (order.getSettle() != 1 && order.getSettle() != 2){ + if (order.getSettle() != 1 && order.getSettle() != 2) { throw new CoolException("璇ヨ鍗曞凡澶勭悊"); } List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo)); Date now = new Date(); - for(OrderDetl orderDetl : orderDetls){ + for (OrderDetl orderDetl : orderDetls) { //鏌ヨ鎵�鏈夊簱浣嶇姸鎬佷负F鐨勫簱浣嶄俊鎭� - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(),orderDetl.getBatch(),null,null,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, null, orderDetl.getSupp(), orderDetl.getTemp1(), orderDetl.getTemp2()); if (locDetls.size() == 0) { throw new CoolException("搴撳瓨涓病鏈夎鐗╂枡"); } - for(LocDetl locDetl : locDetls){ + for (LocDetl locDetl : locDetls) { //濡傛灉璇ュ簱浣嶅嚭搴撹矾绾挎墍鐢ㄧ殑鍫嗗灈鏈簅ut_enable涓嶄负Y,璺宠繃璇ュ惊鐜� LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_no", locDetl.getLocNo())); @@ -827,13 +878,13 @@ } BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>() .eq("crn_no", locMast.getCrnNo())); - if (Cools.isEmpty(crn_no) || !crn_no.getOutEnable().equals("Y")){ + if (Cools.isEmpty(crn_no) || !crn_no.getOutEnable().equals("Y")) { continue; } //鍙嚭搴撴暟閲� = 璁㈠崟鏁伴噺 - 浣滀笟涓暟閲� Double outQty = orderDetl.getAnfme() - orderDetl.getWorkQty(); - if(outQty <= 0){ + if (outQty <= 0) { break; } // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱 @@ -845,18 +896,18 @@ order.setSettle(2L); order.setUpdateBy(userId); order.setUpdateTime(now); - if(!orderService.update(order, new EntityWrapper<Order>().eq("order_no", orderNo))){ + if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", orderNo))) { throw new CoolException("鏇存柊璁㈠崟鐘舵�佸け璐�"); } orderDetl.setWorkQty(orderDetl.getWorkQty() + curOutQty); orderDetl.setUpdateBy(userId); orderDetl.setUpdateTime(now); Wrapper wrapper = new EntityWrapper<OrderDetl>().eq("order_no", orderNo) - .eq("matnr",orderDetl.getMatnr()); - if(!Cools.isEmpty(orderDetl.getBatch())){ + .eq("matnr", orderDetl.getMatnr()); + if (!Cools.isEmpty(orderDetl.getBatch())) { wrapper.eq("batch", orderDetl.getBatch()); } - if(!orderDetlService.update(orderDetl, wrapper)){ + if (!orderDetlService.update(orderDetl, wrapper)) { throw new CoolException("鏇存柊璁㈠崟鏄庣粏澶辫触"); } } @@ -866,13 +917,13 @@ @Override // @Transactional - public void leftoversOut(Map<String, Object> map,Long userId) { + public void leftoversOut(Map<String, Object> map, Long userId) { String barcode = map.get("barcode").toString(); String barcode2 = map.get("barcode2").toString(); - int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode2)); - int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",barcode2).ne("io_type",200)); - int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode2)); + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", barcode2)); + int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", barcode2).ne("io_type", 200)); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", barcode2)); if (countLoc > 0 || countWrk > 0 || countwait > 0) { throw new CoolException("璇ユ潯鐮佸凡琚娇鐢�===>>" + barcode2); } @@ -917,7 +968,7 @@ throw new CoolException("鏈煡璇㈠埌鎷f枡浠诲姟鏄庣粏"); } - for(WrkDetl wrkDetl : wrkDetls){ + for (WrkDetl wrkDetl : wrkDetls) { WrkDetl wrkDetl1 = new WrkDetl(); wrkDetl1.sync(wrkDetl); wrkDetl1.setWrkNo(workNo); @@ -925,33 +976,31 @@ } - } @Override public void pdaAdjust(pdaAdjustParam param, Long userId) { - if (Cools.isEmpty(param)){ + if (Cools.isEmpty(param)) { throw new CoolException("鐩樼偣鍒楄〃鍙傛暟涓虹┖"); } - for (InventoryCheckOrderDetl orderDetl: param.getParam()){ + for (InventoryCheckOrderDetl orderDetl : param.getParam()) { InventoryCheckOrderDetl inventoryCheckOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<InventoryCheckOrderDetl>() .eq("order_no", orderDetl.getOrderNo()) .eq("matnr", orderDetl.getMatnr()) .eq("batch", orderDetl.getBatch())); - if (Cools.isEmpty(inventoryCheckOrderDetl)){ + if (Cools.isEmpty(inventoryCheckOrderDetl)) { throw new CoolException("鏈煡璇㈠埌鐩樼偣淇℃伅"); } - if (!inventoryCheckOrderDetl.getStatus().equals("1")){ + if (!inventoryCheckOrderDetl.getStatus().equals("1")) { throw new CoolException("璇ヤ换鍔″凡鐩樼偣"); } inventoryCheckOrderDetl.setCheckAnfme(orderDetl.getCheckAnfme()); inventoryCheckOrderDetl.setStatus("2"); - if (!checkOrderDetlService.updateById(inventoryCheckOrderDetl)){ + if (!checkOrderDetlService.updateById(inventoryCheckOrderDetl)) { throw new CoolException("淇濆瓨鐩樼偣淇℃伅澶辫触!"); } } - } @@ -959,26 +1008,26 @@ @Override @Transactional public void inventoryUpload(String orderId) { - if (Cools.isEmpty(orderId)){ + if (Cools.isEmpty(orderId)) { throw new CoolException("鐩樼偣鍗昳d涓虹┖"); } InventoryCheckOrder inventoryCheckOrder = checkOrderService.selectById(orderId); - if (Cools.isEmpty(inventoryCheckOrder)){ + if (Cools.isEmpty(inventoryCheckOrder)) { throw new CoolException("鏈壘鍒扮洏鐐瑰崟"); } - if (inventoryCheckOrder.getStatus().equals("2")){ + if (inventoryCheckOrder.getStatus().equals("2")) { throw new CoolException("鐩樼偣鍗曞凡鎻愪氦"); } int count = checkOrderDetlService.selectCount(new EntityWrapper<InventoryCheckOrderDetl>() .eq("order_no", inventoryCheckOrder.getOrderNo()).isNull("check_anfme")); - if (count>0){ + if (count > 0) { throw new CoolException("鏈夋湭瀹屾垚鐨勭洏鐐逛换鍔�"); } List<InventoryCheckOrderDetl> checkOrderProfitDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>() .eq("order_no", inventoryCheckOrder.getOrderNo()) .addFilter("anfme < check_anfme")); - if (!checkOrderProfitDetls.isEmpty()){ + if (!checkOrderProfitDetls.isEmpty()) { //鑾峰彇鐩樼泩鍗昿aram InventoryErpParam erpProfitParam = getErpProfitParam(inventoryCheckOrder, checkOrderProfitDetls); uploadErp(erpProfitParam); @@ -988,27 +1037,25 @@ .eq("order_no", inventoryCheckOrder.getOrderNo()) .addFilter("anfme > check_anfme")); - if (!checkOrderDeficitDetls.isEmpty()){ + if (!checkOrderDeficitDetls.isEmpty()) { //鑾峰彇鐩樹簭鍗昿aram InventoryErpParam erpDeficitParam = getErpDeficitParam(inventoryCheckOrder, checkOrderDeficitDetls); uploadErp(erpDeficitParam); } inventoryCheckOrder.setStatus("2"); - if (!checkOrderService.updateById(inventoryCheckOrder)){ + if (!checkOrderService.updateById(inventoryCheckOrder)) { throw new CoolException("鐘舵�佹洿鏂板け璐�"); } - - } @Override @Transactional - public void pingKuShelves(CombParam combParam,Long userId) { + public void pingKuShelves(CombParam combParam, Long userId) { Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3)); - if (Cools.isEmpty(node)){ + if (Cools.isEmpty(node)) { throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�"); } @@ -1038,8 +1085,8 @@ } // DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() - , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), orderDetl.getSuppCode() + , orderDetl.getManu(), orderDetl.getSku(), orderDetl.getSupp(), orderDetl.getTemp1(), orderDetl.getTemp2(), orderDetl.getTemp3(), orderDetl.getTemp4()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -1113,12 +1160,12 @@ String orderNo = combParam.getOrderNo(); Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3)); - if (Cools.isEmpty(node)){ + if (Cools.isEmpty(node)) { throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�"); } //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。 Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo)); - if (order.getSettle() != 1 && order.getSettle() != 2){ + if (order.getSettle() != 1 && order.getSettle() != 2) { throw new CoolException("璇ヨ鍗曞凡澶勭悊"); } List<DetlDto> detlDtos = new ArrayList<>(); @@ -1128,10 +1175,10 @@ .eq("temp3", elem.getSupp()).eq("temp1", elem.getTemp1()).eq("temp2", elem.getTemp2()); ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper); - if (Cools.isEmpty(manLocDetl)){ + if (Cools.isEmpty(manLocDetl)) { throw new CoolException("璇ュ簱浣嶆湭鏌ヨ鍒拌揣鐗╀俊鎭�"); } - if (elem.getAnfme()> manLocDetl.getAnfme()){ + if (elem.getAnfme() > manLocDetl.getAnfme()) { throw new CoolException("鍑哄簱鏁伴噺澶т簬搴撲綅鍓╀綑鏁伴噺"); } @@ -1147,8 +1194,8 @@ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); } - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() - , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), orderDetl.getSuppCode() + , orderDetl.getManu(), orderDetl.getSku(), orderDetl.getSupp(), orderDetl.getTemp1(), orderDetl.getTemp2(), orderDetl.getTemp3(), orderDetl.getTemp4()); int workNo = commonService.getWorkNo(4); @@ -1204,17 +1251,14 @@ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } - if (new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue() == 0){ + if (new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue() == 0) { manLocDetlService.delete(manLocDetlWrapper); - }else { + } else { manLocDetl.setAnfme(new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue()); - if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)) { + if (!manLocDetlService.update(manLocDetl, manLocDetlWrapper)) { throw new CoolException("鏇存柊鏄庣粏澶辫触"); } } - - - } @@ -1223,49 +1267,49 @@ } - public void uploadErp(InventoryErpParam param){ - String response = ""; - boolean success = false; - try { - HashMap<String, Object> headers = new HashMap<>(); - headers.put("Content-Type", "application/json"); - response = new HttpHandler.Builder() - .setHeaders(headers) - .setUri("10.0.100.160:30108") - .setPath("web/apps/gongqi.df.dataTrans/DTInterFace/doJobWithupdateBody") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("errcode").equals(0)) { - success = true; - } else if (jsonObject.getInteger("errcode").equals(1)) { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(param), response); - throw new CoolException(jsonObject.getString("msg")); - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(param), response); - throw new CoolException("涓婃姤mes绯荤粺澶辫触"); - } - } catch (Exception e) { - log.error("fail", e); - throw new CoolException(e.getMessage()); - } finally { - try { - // 淇濆瓨鎺ュ彛鏃ュ織 - apiLogService.save( - "鐩樼偣鍗曚笂鎶�", - MesConstant.URL + MesConstant.PACK_DOWN_URL, - null, - "127.0.0.1", - JSON.toJSONString(param), - response, - success - ); - } catch (Exception e) { log.error("", e); } - } + public void uploadErp(InventoryErpParam param) { +// String response = ""; +// boolean success = false; +// try { +// HashMap<String, Object> headers = new HashMap<>(); +// headers.put("Content-Type", "application/json"); +// response = new HttpHandler.Builder() +// .setHeaders(headers) +// .setUri("10.0.100.160:30108") +// .setPath("web/apps/gongqi.df.dataTrans/DTInterFace/doJobWithupdateBody") +// .setJson(JSON.toJSONString(param)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("errcode").equals(0)) { +// success = true; +// } else if (jsonObject.getInteger("errcode").equals(1)) { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(param), response); +// throw new CoolException(jsonObject.getString("msg")); +// } else { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PACK_DOWN_URL, JSON.toJSONString(param), response); +// throw new CoolException("涓婃姤mes绯荤粺澶辫触"); +// } +// } catch (Exception e) { +// log.error("fail", e); +// throw new CoolException(e.getMessage()); +// } finally { +// try { +// // 淇濆瓨鎺ュ彛鏃ュ織 +// apiLogService.save( +// "鐩樼偣鍗曚笂鎶�", +// url , +// null, +// "127.0.0.1", +// JSON.toJSONString(param), +// response, +// success +// ); +// } catch (Exception e) { log.error("", e); } +// } } - public InventoryErpParam getErpProfitParam(InventoryCheckOrder inventoryCheckOrder,List<InventoryCheckOrderDetl> checkOrderProfitDetls) { + public InventoryErpParam getErpProfitParam(InventoryCheckOrder inventoryCheckOrder, List<InventoryCheckOrderDetl> checkOrderProfitDetls) { Date date = new Date(); InventoryErpParam erpProfitParam = new InventoryErpParam(); InventoryErpParam.DataJson dataJson = new InventoryErpParam.DataJson(); @@ -1278,7 +1322,7 @@ updateJson.setOrderNo(inventoryCheckOrder.getOrderNo()); updateJson.setDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); List<InventoryErpParam.MatDetails> matDetails = new ArrayList<>(); - for (InventoryCheckOrderDetl checkOrderProfitDetl: checkOrderProfitDetls){ + for (InventoryCheckOrderDetl checkOrderProfitDetl : checkOrderProfitDetls) { InventoryErpParam.MatDetails matDetail = new InventoryErpParam.MatDetails(); Mat mat = matService.selectByMatnr(checkOrderProfitDetl.getMatnr()); @@ -1290,7 +1334,7 @@ matDetail.setAnfme(anfme); matDetail.setLocNo(checkOrderProfitDetl.getLocNo()); matDetail.setWarehouse(checkOrderProfitDetl.getArea()); - matDetail.setSeq(updateJson.getMatDetails() == null?1:updateJson.getMatDetails().size()+1); + matDetail.setSeq(updateJson.getMatDetails() == null ? 1 : updateJson.getMatDetails().size() + 1); matDetails.add(matDetail); } updateJson.setMatDetails(matDetails); @@ -1299,7 +1343,7 @@ return erpProfitParam; } - public InventoryErpParam getErpDeficitParam(InventoryCheckOrder inventoryCheckOrder,List<InventoryCheckOrderDetl> checkOrderDeficitDetls) { + public InventoryErpParam getErpDeficitParam(InventoryCheckOrder inventoryCheckOrder, List<InventoryCheckOrderDetl> checkOrderDeficitDetls) { Date date = new Date(); InventoryErpParam erpDeficitParam = new InventoryErpParam(); InventoryErpParam.DataJson dataJson = new InventoryErpParam.DataJson(); @@ -1312,7 +1356,7 @@ updateJson2.setOrderNo(inventoryCheckOrder.getOrderNo()); updateJson2.setDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); List<InventoryErpParam.MatDetails> matDetails = new ArrayList<>(); - for (InventoryCheckOrderDetl checkOrderDeficitDetl: checkOrderDeficitDetls){ + for (InventoryCheckOrderDetl checkOrderDeficitDetl : checkOrderDeficitDetls) { InventoryErpParam.MatDetails matDetail = new InventoryErpParam.MatDetails(); Mat mat = matService.selectByMatnr(checkOrderDeficitDetl.getMatnr()); @@ -1324,7 +1368,7 @@ matDetail.setAnfme(anfme); matDetail.setLocNo(checkOrderDeficitDetl.getLocNo()); matDetail.setWarehouse(checkOrderDeficitDetl.getArea()); - matDetail.setSeq(updateJson2.getMatDetails() == null?1:updateJson2.getMatDetails().size()+1); + matDetail.setSeq(updateJson2.getMatDetails() == null ? 1 : updateJson2.getMatDetails().size() + 1); matDetails.add(matDetail); } updateJson2.setMatDetails(matDetails); 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 aff9cec..22ac4dc 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; @@ -107,12 +106,13 @@ now, // 淇敼鏃堕棿 null // 澶囨敞 ); + order.setShipCode(param.getQuality()); if (!orderService.insert(order)) { throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"); } // 鍗曟嵁鏄庣粏妗� List<DetlDto> list = new ArrayList<>(); - List<DetlDto> orderDetails = param.getOrderDetails(); + List<DetlDto> orderDetails = param.getDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo() , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4()); @@ -253,15 +253,17 @@ now, // 淇敼鏃堕棿 null // 澶囨敞 ); + order.setShipCode(param.getQuality()); if (!orderService.insert(order)) { throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"); } // 鍗曟嵁鏄庣粏妗� List<DetlDto> list = new ArrayList<>(); - List<DetlDto> orderDetails = param.getOrderDetails(); + List<DetlDto> orderDetails = param.getDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo() , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4()); + dto.setTemp1(param.getQuality()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlReportLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlReportLogServiceImpl.java new file mode 100644 index 0000000..503b085 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlReportLogServiceImpl.java @@ -0,0 +1,13 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.zy.asrs.entity.OrderDetlReportLog; +import com.zy.asrs.mapper.OrderDetlReportLogMapper; +import com.zy.asrs.service.OrderDetlReportLogService; +import org.springframework.stereotype.Service; + +@Service("orderDetlReportLogService") +public class OrderDetlReportLogServiceImpl extends ServiceImpl<OrderDetlReportLogMapper, OrderDetlReportLog> implements OrderDetlReportLogService { + + +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlReportServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlReportServiceImpl.java new file mode 100644 index 0000000..ad87178 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlReportServiceImpl.java @@ -0,0 +1,21 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlReport; +import com.zy.asrs.mapper.OrderDetlMapper; +import com.zy.asrs.mapper.OrderDetlReportMapper; +import com.zy.asrs.service.OrderDetlReportService; +import com.zy.asrs.service.OrderDetlService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("orderDetlReportService") +public class OrderDetlReportServiceImpl extends ServiceImpl<OrderDetlReportMapper, OrderDetlReport> implements OrderDetlReportService { + + +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java index f03b136..3fa481c 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java @@ -116,7 +116,7 @@ openParam.setOrderNo(orderNo); openParam.setInboundDate(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�"); - openParam.setOrderDetails(detlDtos); + openParam.setDetails(detlDtos); openService.pakinOrderCreate(openParam); } else { // 鐢熸垚鍑哄簱鍗曟嵁 @@ -124,7 +124,7 @@ openParam.setOrderNo(orderNo); openParam.setInboundDate(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("鎵嬪姩鍑哄簱鍗�"); - openParam.setOrderDetails(detlDtos); + openParam.setDetails(detlDtos); openService.pakoutOrderCreate(openParam); } diff --git a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java index 76ec280..adabcae 100644 --- a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java @@ -4,6 +4,10 @@ import com.core.common.Cools; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlReport; +import com.zy.asrs.entity.OrderDetlReportLog; +import com.zy.asrs.service.OrderDetlReportLogService; +import com.zy.asrs.service.OrderDetlReportService; import com.zy.asrs.service.OrderDetlService; import com.zy.asrs.service.OrderService; import com.zy.asrs.task.AbstractHandler; @@ -22,6 +26,10 @@ private OrderService orderService; @Autowired private OrderDetlService orderDetlService; + @Autowired + private OrderDetlReportLogService orderDetlReportLogService; + @Autowired + private OrderDetlReportService orderDetlReportService; public ReturnT<String> start(){ List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>() @@ -30,6 +38,13 @@ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>() .eq("order_no", order.getOrderNo())); moveBoth(order,orderDetls); + List<OrderDetlReport> orderNo = orderDetlReportService.selectList(new EntityWrapper<OrderDetlReport>().eq("orderNo", order.getOrderNo())); + for (OrderDetlReport orderDetlReport : orderNo){ + OrderDetlReportLog log = new OrderDetlReportLog(); + log.sync(orderDetlReport); + orderDetlReportLogService.insert(log); + orderDetlReportService.deleteById(orderDetlReport); + } log.info("宸插畬鎴愬崟鎹Щ鍔ㄨ嚦鍘嗗彶琛ㄦ垚鍔� =====>" +order); } return SUCCESS; diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java index 43b50b1..ade0620 100644 --- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java @@ -2,29 +2,30 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.DocType; import com.zy.asrs.entity.Order; -import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.OrderDetlReport; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.DocTypeService; -import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.OrderDetlReportService; import com.zy.asrs.service.OrderService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; -import com.zy.common.constant.MesConstant; +import com.zy.asrs.third.TokenUtils; import com.zy.common.model.MesPakinParam; -import com.zy.common.model.MesPakoutParam; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** * Created by vincent on 2020/7/7 @@ -38,11 +39,17 @@ @Autowired private OrderService orderService; @Autowired - private OrderDetlService orderDetlService; + private OrderDetlReportService orderDetlReportService; @Autowired private ApiLogService apiLogService; @Autowired private DocTypeService docTypeService; + + @Value("mes.url") + private String url; + + @Value("mes.pakin") + private String pakin; @Transactional public ReturnT<String> start(Order order) { @@ -50,23 +57,32 @@ if (null == docType) { return SUCCESS; } - List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + List<OrderDetlReport> orderDetls = orderDetlReportService.selectList(new EntityWrapper<OrderDetlReport>().eq("orderNo", order.getOrderNo())); // 鍏ュ簱瀹屾垚涓婃姤 if (docType.getPakin() == 1) { MesPakinParam pakinParam = new MesPakinParam(); - pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime())); - pakinParam.setLgortFrom("5008"); - pakinParam.setLgortTo("5006"); - for (OrderDetl orderDetl : orderDetls) { - String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); - pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); + pakinParam.setReceiptNumber(order.getOrderNo()); + pakinParam.setReceiptType(order.getDocType$()); + pakinParam.setCompleteInd("1"); + for (OrderDetlReport orderDetl : orderDetls) { + MesPakinParam.Detl detl = new MesPakinParam.Detl(); + detl.setQty(orderDetl.getAnfme()); + detl.setBarcode(orderDetl.getThreeCode()); + detl.setPalletBarcode(orderDetl.getBarcode()); + detl.setProductionCode(orderDetl.getMatnr()); + pakinParam.getBarcodeList().add(detl); + } + Map<String, Object> token = TokenUtils.getToken(url); + if (Cools.isEmpty(token)) { + return FAIL.setMsg("鑾峰彇token澶辫触"); } String response = ""; boolean success = false; try { response = new HttpHandler.Builder() - .setUri(MesConstant.URL) - .setPath(MesConstant.PAKIN_URL) + .setHeaders(token) + .setUri(url) + .setPath(pakin) .setJson(JSON.toJSONString(pakinParam)) .build() .doPost(); @@ -78,7 +94,7 @@ throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); } } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response); + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url + pakin, JSON.toJSONString(pakinParam), response); throw new CoolException("涓婃姤mes绯荤粺澶辫触"); } } catch (Exception e) { @@ -90,70 +106,72 @@ // 淇濆瓨鎺ュ彛鏃ュ織 apiLogService.save( "鎴愬搧搴撳叆搴撲笂鎶�", - MesConstant.URL + MesConstant.PAKIN_URL, + url +pakin, null, "127.0.0.1", JSON.toJSONString(pakinParam), response, success ); - } catch (Exception e) { log.error("", e); } + } catch (Exception e) { + log.error("", e); + } } } // 鍑哄簱瀹屾垚涓婃姤 - if (docType.getPakout() == 1) { - MesPakoutParam pakoutParam = new MesPakoutParam(); - pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�")); - pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); - pakoutParam.setLgortFrom("5006"); - pakoutParam.setLgortTo("1111"); - if (!pakoutParam.isTag()) { - pakoutParam.setKunnr("C1000"); - } - pakoutParam.setOrderNo(order.getOrderNo()); - for (OrderDetl orderDetl : orderDetls) { - String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); - pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); - } - String response = ""; - boolean success = false; - try { - response = new HttpHandler.Builder() - .setUri(MesConstant.URL) - .setPath(MesConstant.PAKOUT_URL) - .setJson(JSON.toJSONString(pakoutParam)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - success = true; - // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� - if (!orderService.updateSettle(order.getId(), 6L, null)) { - throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); - } - } else { - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response); - throw new CoolException("涓婃姤mes绯荤粺澶辫触"); - } - } catch (Exception e) { - log.error("fail", e); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return FAIL.setMsg(e.getMessage()); - } finally { - try { - // 淇濆瓨鎺ュ彛鏃ュ織 - apiLogService.save( - "鎴愬搧搴撳嚭搴撲笂鎶�", - MesConstant.URL + MesConstant.PAKOUT_URL, - null, - "127.0.0.1", - JSON.toJSONString(pakoutParam), - response, - success - ); - } catch (Exception e) { log.error("", e); } - } - } +// if (docType.getPakout() == 1) { +// MesPakoutParam pakoutParam = new MesPakoutParam(); +// pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�")); +// pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); +// pakoutParam.setLgortFrom("5006"); +// pakoutParam.setLgortTo("1111"); +// if (!pakoutParam.isTag()) { +// pakoutParam.setKunnr("C1000"); +// } +// pakoutParam.setOrderNo(order.getOrderNo()); +// for (OrderDetl orderDetl : orderDetls) { +// String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); +// pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme())); +// } +// String response = ""; +// boolean success = false; +// try { +// response = new HttpHandler.Builder() +// .setUri(MesConstant.URL) +// .setPath(MesConstant.PAKOUT_URL) +// .setJson(JSON.toJSONString(pakoutParam)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("code").equals(200)) { +// success = true; +// // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� +// if (!orderService.updateSettle(order.getId(), 6L, null)) { +// throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); +// } +// } else { +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response); +// throw new CoolException("涓婃姤mes绯荤粺澶辫触"); +// } +// } catch (Exception e) { +// log.error("fail", e); +//// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// return FAIL.setMsg(e.getMessage()); +// } finally { +// try { +// // 淇濆瓨鎺ュ彛鏃ュ織 +// apiLogService.save( +// "鎴愬搧搴撳嚭搴撲笂鎶�", +// MesConstant.URL + MesConstant.PAKOUT_URL, +// null, +// "127.0.0.1", +// JSON.toJSONString(pakoutParam), +// response, +// success +// ); +// } catch (Exception e) { log.error("", e); } +// } +// } return SUCCESS; } diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index ba737c2..8f65b0f 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -37,6 +37,8 @@ private OrderDetlService orderDetlService; @Autowired private WorkService workService; + @Autowired + private OrderDetlReportService orderDetlReportService; // private static final Map<Integer,Integer> sourceSite = new HashMap<>(); // static { @@ -129,6 +131,11 @@ return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } + if (!Cools.isEmpty(wrkDetl.getOrderNo())){ + OrderDetlReport orderDetlReport = new OrderDetlReport(); + orderDetlReport.sync(wrkDetl); + orderDetlReportService.insert(orderDetlReport); + } // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); diff --git a/src/main/java/com/zy/asrs/third/CodeDataParam.java b/src/main/java/com/zy/asrs/third/CodeDataParam.java new file mode 100644 index 0000000..fa112cc --- /dev/null +++ b/src/main/java/com/zy/asrs/third/CodeDataParam.java @@ -0,0 +1,17 @@ +package com.zy.asrs.third; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CodeDataParam implements Serializable { + private String barcode; + private String productionCode; + private String productionName; + private String productionStandard; + private String batchNum; + private Double qty; + private String quality; + +} diff --git a/src/main/java/com/zy/asrs/third/CodeParam.java b/src/main/java/com/zy/asrs/third/CodeParam.java new file mode 100644 index 0000000..d56181b --- /dev/null +++ b/src/main/java/com/zy/asrs/third/CodeParam.java @@ -0,0 +1,18 @@ +package com.zy.asrs.third; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class CodeParam implements Serializable { + private List<String> barcodeList; + + public CodeParam() { + } + + public CodeParam(List<String> threeCodes) { + this.barcodeList = threeCodes; + } +} diff --git a/src/main/java/com/zy/asrs/third/MesResponse.java b/src/main/java/com/zy/asrs/third/MesResponse.java new file mode 100644 index 0000000..226274e --- /dev/null +++ b/src/main/java/com/zy/asrs/third/MesResponse.java @@ -0,0 +1,12 @@ +package com.zy.asrs.third; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class MesResponse implements Serializable { + private String message; + private Integer code; + private String data; +} diff --git a/src/main/java/com/zy/asrs/third/TokenUtils.java b/src/main/java/com/zy/asrs/third/TokenUtils.java new file mode 100644 index 0000000..f88cfe3 --- /dev/null +++ b/src/main/java/com/zy/asrs/third/TokenUtils.java @@ -0,0 +1,44 @@ +package com.zy.asrs.third; + +import com.alibaba.fastjson.JSON; +import com.zy.common.utils.HttpHandler; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +public class TokenUtils { + private static String clientId = "xincai"; + + private static String clientSecret = "123456"; + + private static String erpId = "1130021"; + + private static String tokenUrl = "/getMsg/v2/createToken"; + + public static Map<String, Object> getToken(String ip) { + Map<String, Object> data = new HashMap<>(); + Map<String, String> tokenData = new HashMap<>(); + tokenData.put("clientId", clientId); + tokenData.put("clientSecret", clientSecret); + tokenData.put("erpId", erpId); + String response = null; + try { + response = new HttpHandler.Builder() + .setUri(ip) + .setPath(tokenUrl) + .setJson(JSON.toJSONString(tokenData)) + .build() + .doPost(); + } catch (IOException e) { + throw new RuntimeException(e); + } + MesResponse jsonObject = JSON.parseObject(response, MesResponse.class); + if (jsonObject.getCode().equals(200)) { + data.put("token", JSON.parseObject(jsonObject.getData()).getString("token")); + } + return null; + } + + +} diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java deleted file mode 100644 index eb34e04..0000000 --- a/src/main/java/com/zy/common/constant/MesConstant.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.zy.common.constant; - -/** - * Created by vincent on 2022/4/21 - */ -public class MesConstant { - - public static final String URL = "http://192.168.99.130:80"; - - public static final String PACK_DOWN_URL = "mes/api/zy/v1/packDown/sendList"; - - public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList"; - - public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList"; - -} diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java index d6d2cc3..9837a5b 100644 --- a/src/main/java/com/zy/common/model/DetlDto.java +++ b/src/main/java/com/zy/common/model/DetlDto.java @@ -27,11 +27,13 @@ private String temp2 = ""; private String temp3 = ""; private String temp4 = ""; + private Double actulQty; + private Integer danger; public DetlDto() { } - public DetlDto(String matnr, String batch, Double anfme,String fromOrderNo,String mark,String customer,String suppName,String temp1,String temp2,String temp3,String temp4) { + public DetlDto(String matnr, String batch, Double anfme, String fromOrderNo, String mark, String customer, String suppName, String temp1, String temp2, String temp3, String temp4) { this.matnr = matnr; this.batch = batch; this.anfme = anfme; @@ -60,7 +62,8 @@ this.batch = batch; this.anfme = anfme; } - public DetlDto(String matnr, String batch, Double anfme,String mark) { + + public DetlDto(String matnr, String batch, Double anfme, String mark) { this.matnr = matnr; this.batch = batch; this.anfme = anfme; diff --git a/src/main/java/com/zy/common/model/MesPakinParam.java b/src/main/java/com/zy/common/model/MesPakinParam.java index 4e9b4cf..ef5e796 100644 --- a/src/main/java/com/zy/common/model/MesPakinParam.java +++ b/src/main/java/com/zy/common/model/MesPakinParam.java @@ -12,32 +12,30 @@ public class MesPakinParam { // 鍏ュ簱鏃堕棿 - private String pakinTime; + private String receiptNumber; - // 鏉ユ簮鍦� - 鍐欐 - private String lgortFrom; + // + private String receiptType; - // 鐩殑鍦� - 鍐欐 - private String lgortTo; + // + private String completeInd; - private List<Detl> list = new ArrayList<>(); + private List<Detl> barcodeList = new ArrayList<>(); @Data public static class Detl { - // 鐗╂枡鏉$爜 + // private String barcode; - // 鏁伴噺 - private Double anfme; + // + private String productionCode; - public Detl() { - } + private Double qty; - public Detl(String barcode, Double anfme) { - this.barcode = barcode; - this.anfme = anfme; - } + private String palletBarcode; + + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c82ac48..ad4b454 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://192.168.10.201:1433;databasename=fyxcasrs + url: jdbc:sqlserver://127.0.0.1:1433;databasename=fyxcasrs username: sa password: sa@123 mvc: @@ -112,4 +112,9 @@ crn1: true crn2: false crn3: false - crn4: false \ No newline at end of file + crn4: false + +mes: + url: http://192.168.10.201:8080/mes/ + pakin: /getMsg/v2/sync/WMSDeliveryNoteJudgeFinish + code: /getMsg/v2/sync/barcodeStatusQuery \ No newline at end of file -- Gitblit v1.9.1