diff --git a/6.program/wms-empty/pom.xml b/6.program/wms-empty/pom.xml
index cf26262..2846fbf 100644
--- a/6.program/wms-empty/pom.xml
+++ b/6.program/wms-empty/pom.xml
@@ -20,6 +20,11 @@
com.mt
wms-basic
+
+ cn.hutool
+ hutool-all
+ 5.5.7
+
\ No newline at end of file
diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ApmsController.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ApmsController.java
new file mode 100644
index 0000000..0cac0f5
--- /dev/null
+++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ApmsController.java
@@ -0,0 +1,121 @@
+package com.mt.wms.empty.controller;
+
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONUtil;
+import com.mt.wms.core.base.BaseController;
+import com.mt.wms.core.constants.CommonConstant;
+import com.mt.wms.core.vo.R;
+import com.mt.wms.empty.params.*;
+import com.mt.wms.empty.service.OrderInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+
+@RestController
+@RequestMapping(CommonConstant.API_MODULE_BASE + "apms")
+@Slf4j
+@Api(value = "Apms相关接口", tags = "Apms相关接口", hidden = false)
+public class ApmsController extends BaseController {
+ @Autowired
+ private OrderInfoService orderInfoService;
+
+ static String Token = "";
+ static String ApiAdress = "http://59.110.171.25:9010";
+
+ @PostMapping(value = "apmsPostOrder")
+ @ApiOperation(value = "接收APMS推送订单信息")
+ public R apmsPostOrder(@Validated @RequestBody OrderParamForApms apmsPostOrderParam) {
+ return orderInfoService.apmsPostOrder(apmsPostOrderParam);
+ }
+
+ @PostMapping(value = "createProcessSheet")
+ @ApiOperation(value = "通知APMS开始加工处理信息")
+ public R createProcessSheet(@Validated @RequestBody ApmsCreateProcessSheet apmsCreateProcess) {
+ //todo
+ checkToken();
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("entity", apmsCreateProcess);
+ HttpResponse response = HttpUtil.createPost(ApiAdress + "/platform/api/createProcessSheet")
+ .header("token", Token).form(paramMap).execute();
+ return successful(response);
+ }
+
+ @PostMapping(value = "startProcess")
+ @ApiOperation(value = "获取APMS订单开始处理")
+ public R startProcess(@Validated @RequestBody ApmsStartProcess apmsStartProcess) {
+ //todo
+ checkToken();
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("entity", apmsStartProcess);
+ HttpResponse response = HttpUtil.createPost(ApiAdress + "/platform/api/startProcess")
+ .header("token", Token).form(paramMap).execute();
+ return successful(response);
+ }
+
+ @PostMapping(value = "endProcess")
+ @ApiOperation(value = "通知APMS订单结束处理")
+ public R endProcess(@Validated @RequestBody ApmsEndProcess apmsEndProcess) {
+ //todo
+ checkToken();
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("entity", apmsEndProcess);
+ HttpResponse response = HttpUtil.createPost(ApiAdress + "/platform/api/endProcess")
+ .header("token", Token).form(paramMap).execute();
+ return successful(response);
+ }
+
+ @PostMapping(value = "finishProcessSheet")
+ @ApiOperation(value = "通知APMS结束加工处理信息")
+ public R finishProcessSheet(@Validated @RequestBody ApmsFinishProcessSheet apmsFinishProcessSheet) {
+ //todo
+ checkToken();
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("entity", apmsFinishProcessSheet);
+ HttpResponse response = HttpUtil.createPost(ApiAdress + "/platform/api/finishProcessSheet")
+ .header("token", Token).form(paramMap).execute();
+ return successful(response);
+ }
+
+ @PostMapping(value = "getApmsToken")
+ @ApiOperation(value = "获取APMS获得Token")
+ public R getApmsToken() {
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("apiKey", "7ee8f59bbaeae27e");
+ paramMap.put("platFormCode", "CUC");
+ String result = HttpUtil.get(ApiAdress + "/platform/api/getToken", paramMap);
+ JSON parse = JSONUtil.parse(result);
+ Object token = parse.getByPath("token");
+ Token = token.toString();
+ //todo 记录通讯日志
+ return successful(result);
+ }
+
+ @PostMapping(value = "getStoveCodeByWorkShopCode")
+ @ApiOperation(value = "APMS通过车间编码获取炉号信息")
+ public R getStoveCodeByWorkShopCode(String workShopCode) {
+ checkToken();
+ HashMap paramMap = new HashMap<>();
+ paramMap.put("workShopCode", workShopCode);
+ HttpResponse response = HttpUtil.createGet(ApiAdress + "/platform/api/getStoveCodeByWorkShopCode")
+ .header("token", Token).form(paramMap).execute();
+ //todo 记录通讯日志
+ return successful(response);
+ }
+
+ private void checkToken() {
+ if (Token.isEmpty())
+ {
+ getApmsToken();
+ }
+ }
+}
diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsCreateProcessSheet.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsCreateProcessSheet.java
new file mode 100644
index 0000000..0422593
--- /dev/null
+++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsCreateProcessSheet.java
@@ -0,0 +1,58 @@
+package com.mt.wms.empty.params;
+
+
+import com.mt.wms.core.base.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms创建生产单", description = "Apms创建生产单")
+public class ApmsCreateProcessSheet extends BaseParam {
+
+ private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "生产单-明细数据", required = false)
+ private List items;
+
+ @ApiModelProperty(value = "备注", required = false)
+ private String remark;
+
+ @ApiModelProperty(value = "开始加工时间:yyyy-MM-dd HH:mm:ss", required = true)
+ private String startTime;
+
+ @ApiModelProperty(value = "开始加工人:为APMS账号", required = true)
+ private String startUser;
+
+ @ApiModelProperty(value = "配炉号", required = true)
+ private String stoveCode;
+
+ @ApiModelProperty(value = "炉号备注", required = false)
+ private String stoveRemark;
+
+ @ApiModelProperty(value = "工艺号", required = false)
+ private String techCode;
+ @ApiModelProperty(value = "车间编码", required = true)
+ private String workShopCode;
+}
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms生产单详细", description = "Apms生产单详细")
+class CreateItem extends BaseParam {
+ private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "标识卡号", required = true)
+ private String itemCode;
+
+ @ApiModelProperty(value = "加工数量", required = true)
+ private String quantity;
+
+ @ApiModelProperty(value = "加工重量", required = true)
+ private String weight;
+}
diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsEndProcess.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsEndProcess.java
new file mode 100644
index 0000000..011651f
--- /dev/null
+++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsEndProcess.java
@@ -0,0 +1,28 @@
+package com.mt.wms.empty.params;
+
+
+import com.mt.wms.core.base.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms结束处理", description = "Apms结束处理")
+public class ApmsEndProcess extends BaseParam {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "生产单编号,创建成功后返回的编号", required = false)
+ private String sheetNo;
+
+ @ApiModelProperty(value = "结束处理时间:yyyy-MM-dd HH:mm:ss", required = true)
+ private String endTime;
+
+ @ApiModelProperty(value = "结束处理人:为APMS账号", required = true)
+ private String endUser;
+}
+
diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsFinishProcessSheet.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsFinishProcessSheet.java
new file mode 100644
index 0000000..a43e462
--- /dev/null
+++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsFinishProcessSheet.java
@@ -0,0 +1,51 @@
+package com.mt.wms.empty.params;
+
+
+import com.mt.wms.core.base.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms创建生产单", description = "Apms创建生产单")
+public class ApmsFinishProcessSheet extends BaseParam {
+
+ private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "生产单-明细数据", required = false)
+ private List items;
+
+
+ @ApiModelProperty(value = "完成加工时间:yyyy-MM-dd HH:mm:ss", required = true)
+ private String endTime;
+
+ @ApiModelProperty(value = "完成加工人:为APMS账号", required = true)
+ private String endUser;
+
+ @ApiModelProperty(value = "配炉号", required = true)
+ private String stoveCode;
+
+ @ApiModelProperty(value = "备注", required = false)
+ private String remark;
+}
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms生产单详细", description = "Apms生产单详细")
+class FinishItem extends BaseParam {
+ private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "标识卡号", required = true)
+ private String itemCode;
+
+ @ApiModelProperty(value = "完成加工数量", required = true)
+ private String finishQuantity;
+
+ @ApiModelProperty(value = "完成加工重量", required = true)
+ private String finishWeight;
+}
diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsStartProcess.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsStartProcess.java
new file mode 100644
index 0000000..29f9920
--- /dev/null
+++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ApmsStartProcess.java
@@ -0,0 +1,34 @@
+package com.mt.wms.empty.params;
+
+
+import com.mt.wms.core.base.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "Apms开始处理", description = "Apms开始处理")
+public class ApmsStartProcess extends BaseParam {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "生产单编号,创建成功后返回的编号", required = false)
+ private String sheetNo;
+
+ @ApiModelProperty(value = "开始加工时间:yyyy-MM-dd HH:mm:ss", required = true)
+ private String startTime;
+
+ @ApiModelProperty(value = "开始加工人:为APMS账号", required = true)
+ private String startUser;
+
+ @ApiModelProperty(value = "配炉号", required = true)
+ private String stoveCode;
+
+ @ApiModelProperty(value = "工艺号", required = false)
+ private String techCode;
+}
+