diff --git a/pom.xml b/pom.xml
index 68cfee9..1ee5390 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,13 @@
2.3.1
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.7
+
+
com.alibaba
easyexcel
diff --git a/zi-wms-boot/src/main/resources/application.yml b/zi-wms-boot/src/main/resources/application.yml
index b28bc9d..9889567 100644
--- a/zi-wms-boot/src/main/resources/application.yml
+++ b/zi-wms-boot/src/main/resources/application.yml
@@ -118,4 +118,8 @@ com:
- GetAreaList
- UserLogin
- UserLogout
-
\ No newline at end of file
+# application.yml
+pagehelper:
+ helperDialect: oracle
+ reasonable: true
+ supportMethodsArguments: true
diff --git a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/invoice/management/data/MaterialReceiveRequest.java b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/invoice/management/data/MaterialReceiveRequest.java
index 6592855..89b74dd 100644
--- a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/invoice/management/data/MaterialReceiveRequest.java
+++ b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/invoice/management/data/MaterialReceiveRequest.java
@@ -28,7 +28,8 @@ public class MaterialReceiveRequest extends FieldAccessor implements DataInfo getPurchase() {
+ List str = new ArrayList<>();
+ str.add(Z001.getCode());
+ str.add(Z002.getCode());
+ str.add(Z003.getCode());
+ str.add(Z004.getCode());
+ return str;
+ }
+}
diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java
new file mode 100644
index 0000000..f90407c
--- /dev/null
+++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java
@@ -0,0 +1,73 @@
+package com.cim.idm.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.cim.idm.constants.ReceiveTypeEnums;
+import com.cim.idm.model.DeliveryDto;
+import com.cim.idm.model.MaterialReceiveRequest;
+import com.cim.idm.model.PageDto;
+import com.cim.idm.service.IDeliveryService;
+import com.cim.idm.utils.AjaxResult;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+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 javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping("/delivery")
+@EnableAutoConfiguration
+public class DeliveryController {
+
+ @Resource
+ private IDeliveryService deliveryService;
+
+ /**
+ * 创建入库单
+ */
+ @PostMapping(value = "/create")
+ public AjaxResult createDelivery(@RequestBody JSONObject in) {
+ DeliveryDto dto = JSON.toJavaObject(in, DeliveryDto.class);
+ return AjaxResult.me().setSuccess(true).setMessage(deliveryService.createDelivery(dto));
+ }
+
+ /**
+ * 获取采购单
+ */
+ @PostMapping(value = "/getPurchase")
+ public AjaxResult getPurchase(@RequestBody PageDto in) {
+ return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getPurchase(in));
+ }
+
+ /**
+ * 获取入库详情
+ * 到货单/销售采购单,根据物料清单,创建批次,进行入库
+ */
+ @PostMapping(value = "/getStoreDetail")
+ public AjaxResult getStoreDetail(@RequestBody JSONObject in) {
+ Map params = (Map) in.get("params");
+ // siteName
+ String siteName = params.get("SITENAME");
+ String receiveRequestName = params.get("RECEIVEREQUESTNAME");
+ // 单据名称集合
+ List nameList = new ArrayList<>();
+ // 判定是否是到库单
+ String typeByKey = deliveryService.getByKey(siteName, receiveRequestName).getReceiveRequestType();
+ if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) {
+ // 到库单(找出该单据下的所有的采购单)
+ nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName)
+ .stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList());
+ } else {
+ // 采购单
+ nameList.add(receiveRequestName);
+ }
+ // 获取采购单明细及批次
+ return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getStoreDetail(siteName, nameList));
+ }
+}
diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java
index e920c94..6380791 100644
--- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java
+++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java
@@ -2,12 +2,14 @@ package com.cim.idm.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.cim.idm.constants.ReceiveTypeEnums;
import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.MaterialReceiveRequest;
import com.cim.idm.model.MaterialreceiveActDto;
import com.cim.idm.model.TrackOutBoDto;
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
+import com.cim.idm.service.IDeliveryService;
import com.cim.idm.service.impl.QMSServiceImpl;
import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult;
@@ -21,7 +23,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -29,17 +30,20 @@ import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.sql.Timestamp;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+
import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl;
+import javax.annotation.Resource;
+
@RestController
@RequestMapping("/MaterialReceiveAct")
@EnableAutoConfiguration
public class MaterialReceiveActController {
+ @Resource
+ private IDeliveryService deliveryService;
+
private static Log log = LogFactory.getLog(MaterialReceiveActController.class);
private EventInfo makeEventInfo;
@@ -521,38 +525,51 @@ public class MaterialReceiveActController {
@RequestMapping(value = "/commitToERP", method = RequestMethod.POST)
public AjaxResult commitToERP(@RequestBody JSONObject in ) {
- TrackOutBoDto boxs = JSON.toJavaObject(in, TrackOutBoDto.class);
- String commitDate = boxs.getCommitDate();
- MaterialreceiveActDto box = boxs.getMaterialreceiveAct();
- String user = boxs.getUser();
- String receiveRequestName = box.getReceiveRequestName();
- String siteName = box.getSiteName();
- String opCode = boxs.getOpCode();
-
- String erpFactory = box.getErpFactory();
- try {
- //调用QMS
- qMSServiceImpl.PreIQCInfoSend(receiveRequestName, "SDK",opCode, erpFactory);
- } catch (CustomException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return AjaxResult.me().setSuccess(false).setMessage(e.toString());
+ TrackOutBoDto trackOutBoDto = JSON.toJavaObject(in, TrackOutBoDto.class);
+ String user = trackOutBoDto.getUser();
+ String opCode = trackOutBoDto.getOpCode();
+ String commitDate = trackOutBoDto.getCommitDate();
+ String name = trackOutBoDto.getReceiveRequestName();
+ String site = trackOutBoDto.getSiteName();
+ // 采购单
+ List requests = new ArrayList<>();
+ // 判定单据类型
+ MaterialReceiveRequest byKey = deliveryService.getByKey(site, name);
+ if (byKey.getReceiveRequestType().equals(ReceiveTypeEnums.DK.getCode())) {
+ // 到货单
+ requests = deliveryService.getReceiveByDelivery(site, name);
+ } else {
+ requests.add(byKey);
}
+ // 采购单处理
+ for (MaterialReceiveRequest request : requests) {
+ String receiveRequestName = request.getReceiveRequestName();
+ String siteName = request.getSiteName();
+ String erpFactory = request.getSTOCKORGNO();
+ try {
+ //调用QMS
+ qMSServiceImpl.PreIQCInfoSend(receiveRequestName, "SDK",opCode, erpFactory);
+ } catch (CustomException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return AjaxResult.me().setSuccess(false).setMessage(e.toString());
+ }
- String undoid;
- try {
- undoid = SendERPStockIn(receiveRequestName, siteName, user, opCode,commitDate,opCode);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return AjaxResult.me().setSuccess(false).setMessage(e.toString());
- }//发送过账
- makeEventInfo = new EventInfoUtil().makeEventInfo("NormalStockInForSDK", user, "NormalStockInForSDK");
- //更新入库凭证
- SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoid, makeEventInfo);
- //更新库存状态
- SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoid,commitDate);
- SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoid,opCode);
+ String undoid;
+ try {
+ undoid = SendERPStockIn(receiveRequestName, siteName, user, opCode,commitDate,opCode);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return AjaxResult.me().setSuccess(false).setMessage(e.toString());
+ }//发送过账
+ makeEventInfo = new EventInfoUtil().makeEventInfo("NormalStockInForSDK", user, "NormalStockInForSDK");
+ //更新入库凭证
+ SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoid, makeEventInfo);
+ //更新库存状态
+ SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoid,commitDate);
+ SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoid,opCode);
+ }
return AjaxResult.me().setResultObj(null);
}
diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java
new file mode 100644
index 0000000..adc54fc
--- /dev/null
+++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java
@@ -0,0 +1,62 @@
+package com.cim.idm.dao;
+
+import com.cim.idm.model.MaterialReceiveRequest;
+import com.cim.idm.model.PurchaseDto;
+import org.apache.ibatis.annotations.MapKey;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+@Component
+@Mapper
+public interface DeliveryDao {
+
+ /**
+ * 新增到货单
+ */
+ int createDelivery(@Param("siteName") String siteName,
+ @Param("receiveRequestName") String receiveRequestName,
+ @Param("receiveRequestType") String receiveRequestType );
+
+ /**
+ * 绑定采购订单 的 到货单
+ */
+ int bindDelivery(@Param("siteName") String siteName,
+ @Param("receiveRequestName") String receiveRequestName,
+ @Param("nameList") List nameList);
+
+ /**
+ * 获取采购订单
+ */
+ List getPurchase(@Param("dto") PurchaseDto dto,
+ @Param("typeList") List typeList);
+
+ /**
+ * 获取入库详情
+ */
+ @MapKey("storeDetail")
+ List