diff --git a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialshiprequestdetail/management/data/MaterialShipRequestDetail.java b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialshiprequestdetail/management/data/MaterialShipRequestDetail.java index df742d8..310b295 100644 --- a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialshiprequestdetail/management/data/MaterialShipRequestDetail.java +++ b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialshiprequestdetail/management/data/MaterialShipRequestDetail.java @@ -147,6 +147,10 @@ public class MaterialShipRequestDetail extends FieldAccessor implements DataInfo public void setSobkz(String sobkz) { this.sobkz = sobkz; } + + private String erpFactory; + + ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -304,6 +308,15 @@ public class MaterialShipRequestDetail extends FieldAccessor implements DataInfo public double getAssignedQuantity() { return assignedQuantity; } + + public String getErpFactory() { + return erpFactory; + } + + public void setErpFactory(String erpFactory) { + this.erpFactory = erpFactory; + } + public void setAssignedQuantity(double assignedQuantity) { this.assignedQuantity = assignedQuantity; } diff --git a/zi-wms-environment/lib/zi-wms-core-1.5.3.jar b/zi-wms-environment/lib/zi-wms-core-1.5.3.jar index d288d51..349c451 100644 Binary files a/zi-wms-environment/lib/zi-wms-core-1.5.3.jar and b/zi-wms-environment/lib/zi-wms-core-1.5.3.jar differ diff --git a/zi-wms-environment/lib/zi-wms-package-1.5.3.jar b/zi-wms-environment/lib/zi-wms-package-1.5.3.jar index d288d51..349c451 100644 Binary files a/zi-wms-environment/lib/zi-wms-package-1.5.3.jar and b/zi-wms-environment/lib/zi-wms-package-1.5.3.jar differ diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/AssignAndDessignController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/AssignAndDessignController.java new file mode 100644 index 0000000..288b507 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/AssignAndDessignController.java @@ -0,0 +1,45 @@ +package com.cim.idm.controller; + +import com.cim.idm.model.AssignAndDessignDto; +import com.cim.idm.model.HoldAndReleaseDto; +import com.cim.idm.response.BaseResponse; +import com.cim.idm.response.RespGenerator; +import com.cim.idm.service.AssignAndDessignService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.stereotype.Controller; +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.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("/AssignAndDessign") +@EnableAutoConfiguration +@Api(tags = "PC端单据绑定与解绑控制器") +@Slf4j +public class AssignAndDessignController { + + @Autowired + private AssignAndDessignService assignAndDessignService; + + @PostMapping(value = "/AssignAndDessignM") + @ApiOperation(value = "PC端单据绑定与解绑") + public BaseResponse AssignAndDessign(HttpServletRequest request, + HttpServletResponse response, + @ApiParam(value = "绑定解绑参数", required = true) @RequestBody AssignAndDessignDto AssignAndDessignDto) { + try { + assignAndDessignService.AssignAndDessign(AssignAndDessignDto); + } catch (Exception e) { + return RespGenerator.returnError(e.getMessage()); + } + return RespGenerator.returnOK(null); + } +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java index 4fc6662..0704cc4 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java @@ -1309,8 +1309,8 @@ public class InvoiceController { createMaterialShipRequestDetailInfo.setShipRequestDetailName("10"); createMaterialShipRequestDetailInfo.setShipRequestName(shipRequestName); Map hashMap = new HashMap (); - hashMap.put("sdk_id", sdk_id); - hashMap.put("phase", phase); +// hashMap.put("sdk_id", sdk_id); +// hashMap.put("phase", phase); hashMap.put("erpFactory", erpfactory); createMaterialShipRequestDetailInfo.setUserColumns(hashMap); MaterialShipRequestDetailServiceProxy.getMaterialShipRequestDetailService().create(createMaterialShipRequestDetailInfo); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/AssignAndDessignDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/AssignAndDessignDto.java new file mode 100644 index 0000000..9d2a41d --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/AssignAndDessignDto.java @@ -0,0 +1,20 @@ +package com.cim.idm.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class AssignAndDessignDto { + + private String userId; + + private String receiveRequestName; + + private String receiveRequestDetailName; + + private String opType; + + + private List boxList; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/AssignAndDessignService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/AssignAndDessignService.java new file mode 100644 index 0000000..d0c21cc --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/AssignAndDessignService.java @@ -0,0 +1,10 @@ +package com.cim.idm.service; + +import com.cim.idm.model.AssignAndDessignDto; +import com.cim.idm.response.BaseResponse; + +public interface AssignAndDessignService { + + //绑定和解绑 + public BaseResponse AssignAndDessign(AssignAndDessignDto AssignAndDessignDto) throws Exception; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java new file mode 100644 index 0000000..f15f6e9 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java @@ -0,0 +1,109 @@ +package com.cim.idm.service.Impl; + +import com.cim.idm.framework.data.EventInfo; +import com.cim.idm.model.AssignAndDessignDto; +import com.cim.idm.model.MaterialPacking; +import com.cim.idm.response.BaseResponse; +import com.cim.idm.service.AssignAndDessignService; +import com.cim.idm.utils.EventInfoUtil; +import com.cim.idm.wmspackage.invoice.MaterialReceiveRequestServiceProxy; +import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy; +import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey; +import com.cim.idm.wmspackage.materialpacking.management.info.MaterialPackingAssignShipRequestInfo; +import com.cim.idm.wmspackage.materialpacking.management.info.MaterialPackingDeassignShipRequestInfo; +import com.cim.idm.wmspackage.receiverequestdetail.ReceiveRequestDetailServiceProxy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class AssignAndDessignServiceImpl implements AssignAndDessignService { + /** + * @param AssignAndDessignDto + * @return + * @throws Exception + */ + @Override + @Transactional(rollbackFor = Exception.class) + public BaseResponse AssignAndDessign(AssignAndDessignDto AssignAndDessignDto) throws Exception { + log.info("AssignAndDessignServiceImpl.AssignAndDessign {}", AssignAndDessignDto); + //获取单号和行号 + String opType = AssignAndDessignDto.getOpType(); + List boxList = AssignAndDessignDto.getBoxList(); + String userId = AssignAndDessignDto.getUserId(); + String receiveRequestName = AssignAndDessignDto.getReceiveRequestName(); + String receiveRequestDetailName = AssignAndDessignDto.getReceiveRequestDetailName(); + if (boxList == null || boxList.size() == 0) { + throw new Exception("请选择要绑定的物料"); + } + //循环判断Box是否已被其他单据占用 + for (MaterialPacking materialPacking : boxList) { + String materialPackingName = materialPacking.getMaterialPackingName(); + String siteName = materialPacking.getSiteName(); + if (materialPackingName == null || materialPackingName.equals("")) { + throw new Exception("请选择要绑定的物料"); + } + MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName); + com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking1 = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey); + if (materialPacking1 == null) { + throw new Exception("物料不存在"); + } + String shipRequestName = materialPacking1.getShipRequestName(); + if (shipRequestName != null && !shipRequestName.equals("")) { + if (!shipRequestName.equals(receiveRequestName)) { + throw new Exception("物料已被其他单据占用"); + } + } + } + if (opType == null || opType.equals("")) { + throw new Exception("请选择操作类型"); + } + if (userId == null || userId.equals("")) { + throw new Exception("请选择操作人"); + } + MaterialPackingAssignShipRequestInfo assignShipRequestInfo = new MaterialPackingAssignShipRequestInfo(); + List materialPackingKeyList = new ArrayList() ; + for (MaterialPacking materialPacking : boxList) { + String materialPackingName = materialPacking.getMaterialPackingName(); + String siteName = materialPacking.getSiteName(); + if (materialPackingName == null || materialPackingName.equals("")) { + throw new Exception("请选择要绑定的物料"); + } + MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName); + materialPackingKeyList.add(materialPackingKey); + + } + //枚举两个方法组分别执行以下的Case + switch (opType) { + case "Assign": + EventInfo eventInfo = EventInfoUtil.makeEventInfo("Assign", userId, "绑定单据"); + assignShipRequestInfo.setShipRequestName(receiveRequestName); + assignShipRequestInfo + .setShipRequestDetailName(receiveRequestDetailName); + Map bindMap = new HashMap(); + assignShipRequestInfo.setUserColumns(bindMap); + MaterialPackingServiceProxy.getMaterialPackingService() + .assignShipRequest(materialPackingKeyList, eventInfo, + assignShipRequestInfo); + break; + case "Dessign": + EventInfo eventInfo1 = EventInfoUtil.makeEventInfo("Dessign", userId, "解绑单据"); + assignShipRequestInfo.setShipRequestName(""); + assignShipRequestInfo + .setShipRequestDetailName(""); + MaterialPackingServiceProxy.getMaterialPackingService() + .assignShipRequest(materialPackingKeyList, eventInfo1, + assignShipRequestInfo); + break; + default: + break; + } + return null; + } +}