diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index f79cfbe3b..16037d476 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -10,12 +10,16 @@ public class Constant { public static final String SERIAL_CACHE_PREFIX_STAT = "serialstat_"; public static final String SERIAL_CACHE_SYNC_UDI = "syncUdi"; - public static final String SCAN_ORDER = "MS"; + public static final String SCAN_ORDER = "MS"; //出入库单据 public static final String BUS_ORDER = "MY"; - public static final String LIN_YONG = "ML"; - public static final String SG_ORDER = "SG"; - public static final String JH_ORDER = "JH"; - public static final String NBM_ORDER = "NBM"; + public static final String LIN_YONG = "ML"; //领用 + public static final String SG_ORDER = "SG"; //申购 + public static final String JH_ORDER = "JH"; //计划 + public static final String NBM_ORDER = "NBM"; //内部码 + public static final String CG_ORDER = "CG"; //采购订单 + public static final String SH_ORDER = "SH"; //送货单 + public static final String DH_ORDER = "DH"; //到货 + public static final String TH_ORDER = "TH"; //退货 /** @@ -184,7 +188,6 @@ public class Constant { public static final String ORDER_STATUS_NEW_ORDER = "newOrder"; - /** * 单据-未校验标识 */ @@ -205,5 +208,28 @@ public class Constant { */ public static final String ORDER_STATUS_AUDITED = "audited"; + /** + * 单据-供应商已审核 + */ + public static final String ORDER_STATUS_SUP_SEARCH = "supSearch"; + + + /**前端页面查询相关单据类型标识*/ + + + /** + * 送货管理界面: supDelivery + * 到货单管理界面: supArrival + * 退货单管理界面: supReturned + * 采购入库单界面: supPurchase + * 发票登记界面: supInvoice + * 出入库明细账 norDetail + * 寄售出入库明细账 preDetail + */ + + public static final String ORDER_ACTION_NOR_DETAIL = "norDetail"; + public static final String ORDER_ACTION_PRE_DETAIL = "preDetail"; + public static final String ORDER_ACTION_SUP_DELIVERY = "supDelivery"; + public static final String ORDER_ACTION_SUP_INVOICE = "supInvoice"; } diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index aebd3df26..661932577 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -37,6 +37,13 @@ public class ConstantStatus { */ public static final Integer ORDER_STATUS_CHECK_FAIL = 6; + + /** + * 已交接待审核 + */ + public static final Integer ORDER_STATUS_CHECK_REW = 10; + + /** * 审核通过 */ @@ -53,6 +60,10 @@ public class ConstantStatus { public static final Integer ORDER_STATUS_PROCESSING = 9; + public static final Integer ORDER_DELIVERY_STATUS_UN = 1; + public static final Integer ORDER_DELIVERY_STATUS_ED = 2; + + /** * 单据创建类型 2.新增扫码单据,1、新增业务单据,3、正常单据处理 */ @@ -60,15 +71,31 @@ public class ConstantStatus { public static final Integer ORDER_TYPE_SCAN = 2; public static final Integer ORDER_TYPE_NORMAL = 3; + /** + * 供应商自助平台单据类型 + */ + public static final Integer BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) + public static final Integer BUS_TYPE_DELIVERY = 2; //送货出入库单据 + public static final Integer BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 + public static final Integer BUS_TYPE_RETURNED = 4; //退货单单据类型 + public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型 + + + public static final Integer ACTION_TYPE_NORMAL = 1; //带票 + public static final Integer ACTION_TYPE_PREIN = 2; //预验收 + public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售 + public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 // public static final Integer ORDER_STATUS_RECEIVEED = 7; //订单处理状态 public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 - public static final Integer ORDER_DEAL_POST = 2; //已提交 + public static final Integer ORDER_DEAL_POST = 2; //已提交,待交接 + public static final Integer ORDER_DEAL_REW = 4; //交接中,待审核 public static final Integer ORDER_DEAL_CHECK = 3; //已审核 + //ERP校验状态 public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功 public static final Integer ORDER_CHECK_FAIL = 1; //校验失败 @@ -214,6 +241,9 @@ public class ConstantStatus { public static final String REDIS_BILLNO = "ACCEPT_"; //缓存单据前缀 public static final String REDIS_BILLNO_CODES = "ACCEPT_CODES"; + public static final String REDIS_DELIVERY_BILLNO = "PUR_DELIVERY_ACCEPT_"; //送货单单据前缀 + public static final String REDIS_DELIVERY_CODES = "PUR_DELIVERY_CODES"; //送货单条码明细 + public static final int APPLY_DRAFT = 1;//草稿 public static final int APPLY_UN_AUDIT = 2;//未审核 @@ -239,5 +269,11 @@ public class ConstantStatus { public static final int PRINT_SUCCESS = 1; //已打印 + //预验收库存状态 1:在库,2:已退回;3.已使用 + + public static final int INVIN_IN = 1; + public static final int INVIN_BACK = 2; + public static final int INVIN_USE = 3; + } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java b/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java index 0773bc52d..821d0a10c 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBusTypePreController.java @@ -56,14 +56,14 @@ public class BasicBusTypePreController { if (CollUtil.isEmpty(basicBusTypePreEntities)) { //创建对应单据流转 if (filterBusTypePreRequest.getType() != null && "changEnable".equals(filterBusTypePreRequest.getType())) { - if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && !basicBussinessType.isAdvanceType()) { + if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.getActionType() != ConstantStatus.ACTION_TYPE_ADVANCE) { BasicBusTypePreEntity basicBusTypePreEntity = new BasicBusTypePreEntity(); basicBusTypePreEntity.setChangeType(ConstantStatus.ORDER_CHANGE_INNOR_NORMAL_IN); basicBusTypePreEntity.setIndex(1); basicBusTypePreEntity.setAction(filterBusTypePreRequest.getAction()); basicBusTypePreEntity.setBeforeTime(1); basicBusTypePreService.insertBusChangeType(basicBusTypePreEntity); - } else if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.isAdvanceType()) { + } else if (ConstantType.TYPE_OUT.equals(basicBussinessType.getMainAction()) && basicBussinessType.getActionType() != ConstantStatus.ACTION_TYPE_ADVANCE) { BasicBusTypePreEntity basicBusTypePreEntity = new BasicBusTypePreEntity(); basicBusTypePreEntity.setChangeType(ConstantStatus.ORDER_CHANGE_ADVANCE_IN); basicBusTypePreEntity.setIndex(1); @@ -167,7 +167,7 @@ public class BasicBusTypePreController { if (result) { return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加!"); } - + basicBusTypePreService.updateBusChangeType(basicBusTypePreEntity); } else { ResultVOUtils.error(999, "参数错误"); diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 85e0e6750..e2022691d 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -25,8 +25,6 @@ import com.glxp.api.util.CustomUtil; import com.glxp.api.util.FileUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; -import org.springframework.http.HttpRequest; -import org.springframework.http.server.ServletServerHttpRequest; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -41,9 +39,6 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; /** * 单据类型接口 @@ -179,16 +174,29 @@ public class BasicBussinessTypeController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - bussinessTypeFilterRequest.setUserId(getUserId()); - List bussinessTypeEntities; - bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser( - bussinessTypeFilterRequest); - PageInfo pageInfo; - pageInfo = new PageInfo<>(bussinessTypeEntities); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(bussinessTypeEntities); - return ResultVOUtils.success(pageSimpleResponse); + + if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { + List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + PageInfo pageInfo; + pageInfo = new PageInfo<>(bussinessTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } else { + bussinessTypeFilterRequest.setUserId(getUserId()); + List bussinessTypeEntities; + bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser( + bussinessTypeFilterRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(bussinessTypeEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(bussinessTypeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + } @@ -236,10 +244,10 @@ public class BasicBussinessTypeController extends BaseController { @PostMapping("/udiwms/bussinessType/file/upload") public BaseResponse uploadProducts(@RequestParam("file") List files, HttpServletRequest servletServerHttpRequest) { - String cookie=servletServerHttpRequest.getHeader("cookie"); - if(cookie!=null){ - cookie= Arrays.asList(cookie.split(";")).get(0); - cookie=cookie.substring(9); + String cookie = servletServerHttpRequest.getHeader("cookie"); + if (cookie != null) { + cookie = Arrays.asList(cookie.split(";")).get(0); + cookie = cookie.substring(9); } @@ -254,7 +262,7 @@ public class BasicBussinessTypeController extends BaseController { List bussinessTypeEntities = JSON.parseArray(json, BasicBussinessTypeEntity.class); if (bussinessTypeEntities != null && bussinessTypeEntities.size() > 0) { for (BasicBussinessTypeEntity bussinessTypeEntity : bussinessTypeEntities) { - basicBussinessTypeService.insertIgnoreBussinessType(bussinessTypeEntity,cookie); + basicBussinessTypeService.insertIgnoreBussinessType(bussinessTypeEntity, cookie); } } } catch (Exception e) { diff --git a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java index 5b2f499ae..e6f16ddc5 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java @@ -198,4 +198,4 @@ public class BasicOrderPrintController { JasperUtils.jasperReport(request, response, param, systemPDFTemplateEntity.getPath(), "pdf"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index ffbffc7f8..b84edc8fc 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -8,6 +8,7 @@ import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; @@ -28,6 +29,7 @@ import com.glxp.api.service.thrsys.ThrDataService; import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiInfoUtil; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; @@ -42,7 +44,7 @@ import java.util.Date; import java.util.List; @RestController -public class UdiRelevanceController { +public class UdiRelevanceController extends BaseController { @Resource GennerOrderUtils gennerOrderUtils; @Resource @@ -117,7 +119,7 @@ public class UdiRelevanceController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode()) || StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) { + if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiRelRequest.getUnionCode())) { if (StrUtil.isNotEmpty(filterUdiRelRequest.getUdiCode())) { UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiRelRequest.getUdiCode()); filterUdiRelRequest.setNameCode(udiEntity.getUdi()); @@ -160,7 +162,6 @@ public class UdiRelevanceController { filterUdiRelRequest.setDiType(1); } udiRelevanceResponses = udiRelevanceService.filterUdiGp(filterUdiRelRequest); - if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0) { for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { UdiRlSupEntity companyProductRelevanceEntity = @@ -288,12 +289,14 @@ public class UdiRelevanceController { } //更新关联表 - if(udiRelevanceSaveRequest.getIsDateBy()!=null && udiRelevanceSaveRequest.getIsDateBy()==1){ - if(udiRelevanceSaveRequest.getRecentDateTime()!=null){ - int time=udiRelevanceSaveRequest.getRecentDateTime()*24; + if (udiRelevanceSaveRequest.getIsDateBy() != null && udiRelevanceSaveRequest.getIsDateBy() == 1) { + if (udiRelevanceSaveRequest.getRecentDateTime() != null) { + int time = udiRelevanceSaveRequest.getRecentDateTime() * 24; udiRelevanceSaveRequest.setRecentDateTime(time); } } + + //更新关联表 UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); BeanUtils.copyProperties(udiRelevanceSaveRequest, udiRelevanceEntity); udiRelevanceEntity.setId(udiRelevanceSaveRequest.getId()); @@ -323,6 +326,7 @@ public class UdiRelevanceController { udiProductEntity.setBasicPrductRemak6(udiRelevanceSaveRequest.getBasicPrductRemak6()); udiProductEntity.setBasicPrductRemak7(udiRelevanceSaveRequest.getBasicPrductRemak7()); udiProductEntity.setBasicPrductRemak8(udiRelevanceSaveRequest.getBasicPrductRemak8()); +// udiProductEntity = UdiInfoUtil.initUdiInfoEntity(udiProductEntity); if (StrUtil.isNotEmpty(udiRelevanceSaveRequest.getOriginUuid())) { udiProductEntity.setProductType(ConstantStatus.PRODUCT_TYPE_UDI); } @@ -511,7 +515,8 @@ public class UdiRelevanceController { for (ThrSystemEntity thrSystemEntity : basicThirdSysEntities) { if (thrSystemEntity.getThirdId().equals("thirdId")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); - basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId()); + if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId())) + basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); if (udiRelevanceEntity.getThirdId() != null && !udiRelevanceEntity.getThirdId().isEmpty()) { @@ -530,7 +535,8 @@ public class UdiRelevanceController { } if (thrSystemEntity.getThirdId().equals("thirdId1")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); - basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1()); + if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId1())) + basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId1()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); if (udiRelevanceEntity.getThirdId1() != null && !udiRelevanceEntity.getThirdId1().isEmpty()) { @@ -546,7 +552,8 @@ public class UdiRelevanceController { } if (thrSystemEntity.getThirdId().equals("thirdId2")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); - basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2()); + if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId2())) + basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId2()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); if (udiRelevanceEntity.getThirdId2() != null && !udiRelevanceEntity.getThirdId2().isEmpty()) { @@ -562,7 +569,8 @@ public class UdiRelevanceController { } if (thrSystemEntity.getThirdId().equals("thirdId3")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); - basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3()); + if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId3())) + basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId3()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); if (udiRelevanceEntity.getThirdId3() != null && !udiRelevanceEntity.getThirdId3().isEmpty()) { @@ -579,7 +587,8 @@ public class UdiRelevanceController { } if (thrSystemEntity.getThirdId().equals("thirdId4")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); - basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4()); + if (StrUtil.isNotEmpty(udiRelevanceEntity.getThirdId4())) + basicProductThirdSysResponse.setThirdId(udiRelevanceEntity.getThirdId4()); basicProductThirdSysResponse.setSysName(thrSystemEntity.getThirdName()); basicProductThirdSysResponse.setSysId(thrSystemEntity.getThirdId()); if (udiRelevanceEntity.getThirdId4() != null && !udiRelevanceEntity.getThirdId4().isEmpty()) { @@ -631,6 +640,22 @@ public class UdiRelevanceController { } + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/updateById") + public BaseResponse updateById(@RequestBody UdiProductEntity udiProductEntity, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + boolean falg = udiProductService.updateUdiInfoById(udiProductEntity); + if (falg) { + return ResultVOUtils.success("更新成功"); + } else { + return ResultVOUtils.error(999, "更新失败"); + } + + } //业务单据选入耗材字典查询列表 diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index a35b885f4..5b01d81df 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -94,7 +94,6 @@ public class IoCodeTempController extends BaseController { @Resource IoOrderDetailBizService orderDetailBizService; - //手持端扫码单据上传调用接口 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/postOrders") @@ -388,21 +387,21 @@ public class IoCodeTempController extends BaseController { BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); if (checkOriginCodeRes != null) { -// IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code); -// if (codeLostEntity == null) { -// if (StrUtil.isNotEmpty(orderId)) { -// List ioCodeEnttities = codeTempService.findByOrderId(orderId); -// IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); -// if (ioCodeEnttity == null) { -// return checkOriginCodeRes; -// } -// } else -// return checkOriginCodeRes; -// } else { -// udiEntity.setBatchNo(codeLostEntity.getBatchNo()); -// udiEntity.setExpireDate(codeLostEntity.getExpireDate()); -// udiEntity.setProduceDate(codeLostEntity.getProduceDate()); -// } + IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code); + if (codeLostEntity == null) { + if (StrUtil.isNotEmpty(orderId)) { + List ioCodeEnttities = codeTempService.findByOrderId(orderId); + IoCodeTempEntity ioCodeEnttity = isExitLocal(code, ioCodeEnttities); + if (ioCodeEnttity == null) { + return checkOriginCodeRes; + } + } else + return checkOriginCodeRes; + } else { + udiEntity.setBatchNo(codeLostEntity.getBatchNo()); + udiEntity.setExpireDate(codeLostEntity.getExpireDate()); + udiEntity.setProduceDate(codeLostEntity.getProduceDate()); + } if (StrUtil.isNotEmpty(orderId)) { List ioCodeEnttities = codeTempService.findByOrderId(orderId); @@ -448,9 +447,9 @@ public class IoCodeTempController extends BaseController { } //校验预验收是否已存在 - if (bussinessTypeEntity.isPreIn()) { + if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { if (StrUtil.isNotEmpty(udiEntity.getSerialNo())) { - List invProductDetailEntities = invPreinDetailService.findByCode(code); + List invProductDetailEntities = invPreinDetailService.findUseByCode(code); if (CollUtil.isNotEmpty(invProductDetailEntities)) { return ResultVOUtils.error(500, "预验收库存已存在此UDI码,请检查后重试!"); } @@ -459,7 +458,7 @@ public class IoCodeTempController extends BaseController { //校验预验收库存是否已存在 if (bussinessTypeEntity.isScanPreIn()) { - InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(code); + InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(code); if (invProductDetailEntity == null) { return ResultVOUtils.error(500, "预验收库存未存在此产品!"); } else { @@ -471,7 +470,7 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 //无序列号,则可能存在多个预验收入库单 IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code); - List invPreinDetailEntities = invPreinDetailService.findByCode(code); + List invPreinDetailEntities = invPreinDetailService.findUseByCode(code); int count = 0; for (InvPreinDetailEntity temp : invPreinDetailEntities) { count = count + temp.getCount(); @@ -575,13 +574,26 @@ public class IoCodeTempController extends BaseController { } //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); - if (udiRelevanceResponses.size() == 1) { + if (udiRelevanceResponses.size() >= 1) { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { return ResultVOUtils.error(500, "该产品不允许以使用单元入库!"); } + + if (bussinessTypeEntity.isVailDispatch() && !udiRelevanceResponse.isDispatch()) { + return ResultVOUtils.error(500, "该产品不可配送,请联系院方!"); + } + + if (bussinessTypeEntity.getVailGroupBuy() == 1 && !udiRelevanceResponse.isGroupBuy()) { //只采集集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入集采产品!"); + } + + if (bussinessTypeEntity.getVailGroupBuy() == 2 && udiRelevanceResponse.isGroupBuy()) { //只采集非集采产品 + return ResultVOUtils.error(500, bussinessTypeEntity.getName() + "单只允许录入非集采产品!"); + } + //计算实际数量 codeEnttity.setReCount(codeEnttity.getMyCount() * udiCalCountUtil.getActCount(udiRelevanceResponse)); } else if (udiRelevanceResponses.size() == 0) { @@ -622,26 +634,25 @@ public class IoCodeTempController extends BaseController { orderEntity.setDeptCode(invWarehouseEntity.getParentId()); orderEntity.setInvCode(addOrderRequest.getInvCode()); orderEntity.setOrderType(addOrderRequest.getOrderType()); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); orderService.insertOrder(orderEntity); } - BaseResponse baseResponse = checkRelId(codeEnttity, unitFk); + if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + + boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); + if (!isBillExit) { + return ResultVOUtils.error(500, "请先录入业务详情"); + } + } + + BaseResponse baseResponse = checkRelId(codeEnttity, unitFk); BaseResponse invRes = checkInv(bussinessTypeEntity, codeEnttity); if (invRes != null) { return invRes; } - //是否边扫边校验 - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { - String errMsg = ioCheckInoutService.checkCode(codeEnttity); - if (errMsg != null) { - return ResultVOUtils.error(500, errMsg); - } else - codeTempService.insert(codeEnttity); - } else { - codeTempService.insert(codeEnttity); - } genDetaiEntity = codeEnttity; if (baseResponse == null) { baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); @@ -656,6 +667,17 @@ public class IoCodeTempController extends BaseController { checkSupId(bussinessTypeEntity, codeEnttity, unitFk); return baseResponse; } + + //是否边扫边校验 + if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + String errMsg = ioCheckInoutService.checkCode(codeEnttity); + if (errMsg != null) { + return ResultVOUtils.error(500, errMsg); + } else + codeTempService.insert(codeEnttity); + } else { + codeTempService.insert(codeEnttity); + } } addCodeResult.setOrderId(orderId); transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); @@ -800,7 +822,7 @@ public class IoCodeTempController extends BaseController { public BaseResponse checkInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity) { if (bussinessTypeEntity.isVailInv()) { - if (bussinessTypeEntity.isAdvanceType()) { + if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { // int count = invPreProductDetailService.vailStockCount(code); //todo 寄售 // if (count < 0) { // return ResultVOUtils.error(500, "当前库存不足,不允许0库存出库"); @@ -852,13 +874,11 @@ public class IoCodeTempController extends BaseController { codeTempEntity.setSupId(codeSaveRequest.getMySupId()); codeTempService.updateById(codeSaveRequest); } - - if(StrUtil.isNotEmpty(codeSaveRequest.getSupId())){ + if (StrUtil.isNotEmpty(codeSaveRequest.getSupId())) { codeTempEntity.setSupId(codeSaveRequest.getSupId()); codeTempService.updateById(codeSaveRequest); } - //更新耗材字典 if (codeSaveRequest.getRelId() != null) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 2b7783c08..8f52a019b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -16,6 +16,8 @@ import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.inout.*; +import com.glxp.api.entity.purchase.SupProductEntity; +import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; import com.glxp.api.entity.thrsys.ThrOrderEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; @@ -25,9 +27,12 @@ import com.glxp.api.req.thrsys.FilterThrOrderDetailRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; +import com.glxp.api.service.purchase.SupProductService; +import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.service.thrsys.ThrOrderDetailService; import com.glxp.api.service.thrsys.ThrOrderService; import com.glxp.api.service.thrsys.ThrSystemBusApiService; @@ -35,10 +40,7 @@ import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; @@ -77,6 +79,10 @@ public class IoOrderDetailBizController extends BaseController { @Resource IBasicBusTypeChangeService basicBusTypeChangeService; + @Resource + IoOrderInvoiceService ioOrderInvoiceService; + + //获取单据业务详情---临时接口查询 @AuthRuleAnnotation("") @GetMapping("udiwms/inout/order/draft/biz") @@ -88,12 +94,17 @@ public class IoOrderDetailBizController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @Resource + SupProductService supProductService; + @Resource + SystemParamConfigService systemParamConfigService; //录入业务单据详情 @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/addBizProduct") public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) { - + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert"); + boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; AuthAdmin authAdmin = getUser(); if (addBizProductReqeust.getRelId() == null && CollUtil.isEmpty(addBizProductReqeust.getDatas())) return ResultVOUtils.error(500, "未选择产品信息"); @@ -122,6 +133,7 @@ public class IoOrderDetailBizController extends BaseController { orderEntity.setCustomerId(authAdmin.getCustomerId() + ""); orderEntity.setDeptCode(invWarehouseEntity.getParentId()); orderEntity.setInvCode(orderEntity.getInvCode()); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); orderService.insertOrder(orderEntity); } @@ -132,7 +144,19 @@ public class IoOrderDetailBizController extends BaseController { datas.add(addBizProductReqeust); } for (AddBizProductReqeust item : datas) { - UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectGroupById(item.getRelId()); + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(item.getRelId()); + +// todo 查询产品是否已经通过认证 + +// if (isVailCert && udiRelevanceResponse.isNeedCert()) { +// SupProductEntity supProductEntity = supProductService.findByRelIdFk(udiRelevanceResponse.getId() + ""); +// if (supProductEntity != null && (supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_PASS || supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE_PASS)) { +// +// } else { +// return ResultVOUtils.error(500, "产品资质证书未通过审核!"); +// } +// } + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); ioOrderDetailBizEntity.setOrderIdFk(orderEntity.getBillNo()); ioOrderDetailBizEntity.setBindRlFk(udiRelevanceResponse.getId()); @@ -158,6 +182,7 @@ public class IoOrderDetailBizController extends BaseController { return ResultVOUtils.success(orderEntity); } + //修改业务单据详情 @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/updateBizProduct") @@ -239,6 +264,7 @@ public class IoOrderDetailBizController extends BaseController { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); orderEntity.setFromType(ConstantStatus.FROM_THRORDER); orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); orderService.insertOrder(orderEntity); for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) { @@ -337,6 +363,7 @@ public class IoOrderDetailBizController extends BaseController { orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_BIZ); orderEntity.setFromDeptCode(purReceiveEntity.getDeptCode()); orderEntity.setFromInvCode(purReceiveEntity.getInvCode()); + orderEntity.setBusType(bussinessTypeEntity.getBusType()); orderService.insertOrder(orderEntity); for (PurReceiveDetailEntity purReceiveDetailEntity : purReceiveDetailEntities) { IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); @@ -385,6 +412,13 @@ public class IoOrderDetailBizController extends BaseController { return ResultVOUtils.page(pageInfo); } + @GetMapping("/udiwms/inout/bizDetail/filterListInvoice") + public BaseResponse filterListInvoice(FilterOrderDetailBizRequest orderDetailBizRequest) { + List list = orderDetailBizService.filterListInv(orderDetailBizRequest); + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/biz/updateBind") @@ -404,4 +438,53 @@ public class IoOrderDetailBizController extends BaseController { } + /** + * 删除发票表 + * + * @param id + * @return + */ + @GetMapping("/udiwms/inout/biz/deleteById") + public BaseResponse deleteById(Integer id) { + + return ResultVOUtils.success(ioOrderInvoiceService.deleteByInvId(id)); + + } + + /** + * 修改发票表 + * + * @param ioOrderInvoiceRequest + * @return + */ + + @PostMapping("/udiwms/inout/biz/updateById") + public BaseResponse deleteById(@RequestBody IoOrderInvoiceRequest ioOrderInvoiceRequest) { + + return ResultVOUtils.success(ioOrderInvoiceService.updateByInvId(ioOrderInvoiceRequest)); + + } + + + @PostMapping("/udiwms/inout/biz/insertInvoice") + public BaseResponse insertInvoice(@RequestBody List list) { + if (CollUtil.isEmpty(list)) { + return ResultVOUtils.error(500, "请选入产品!"); + } + for (IoOrderDetailResultEntity ioOrderDetailResultEntity : list) { + IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); + ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailResultEntity.getOrderIdFk()); + ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailResultEntity.getBindRlFk() + ""); + ioOrderInvoiceEntity.setBatchNo(ioOrderDetailResultEntity.getBatchNo()); + ioOrderInvoiceEntity.setProductDate(ioOrderDetailResultEntity.getProductDate()); + ioOrderInvoiceEntity.setExpireDate(ioOrderDetailResultEntity.getExpireDate()); + boolean b = ioOrderInvoiceService.insertInvoice(ioOrderInvoiceEntity); + } + + + return ResultVOUtils.success("成功"); + + } + + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index cc3d5e37d..4cbe8ec0f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -1,17 +1,20 @@ package com.glxp.api.controller.inout; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; @@ -27,7 +30,7 @@ import java.util.List; * 单据扫码明细查询接口 */ @RestController -public class IoOrderDetailResultController { +public class IoOrderDetailResultController extends BaseController { @Resource IoOrderService orderService; @Resource @@ -51,6 +54,32 @@ public class IoOrderDetailResultController { return ResultVOUtils.page(pageInfo); } + /** + * 查询单据扫码明细列表 + * + * @param orderDetailResultRequest + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/resultDetail/filterOrderList") + public BaseResponse filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) { + + FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); + filterOrderRequest.setVueType(orderDetailResultRequest.getActionType()); + List actions = orderService.setActions(filterOrderRequest); + if (CollUtil.isEmpty(actions)) { + return ResultVOUtils.success(""); + } + orderDetailResultRequest.setActions(actions); + List list = orderDetailResultService.filterOrderList(orderDetailResultRequest); + +// for (IoOrderDetailResultResponse orderDetailResultResponse : list) { +// if(orderDetailResultResponse.get) +// } + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + /** * pda下载业务单据详情复核 */ diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index fc28b70c0..51bab05f9 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -83,8 +83,30 @@ public class IoOrderReviewController extends BaseController { } + //获取验收单据业务详情 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/stock/order/accept/getStatus") + public BaseResponse getStatus(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); + acceptOrderEntity.setBillNo(billNo); + List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); + if (CollUtil.isNotEmpty(datas)) { + boolean isFinish = vailFinish(datas); + if (isFinish) + return ResultVOUtils.success("单据已验收完成"); + else + return ResultVOUtils.error(500, "单据未验收完成"); + } else { + return ResultVOUtils.error(500, "单据未验收完成"); + } + + } - //前端直接验收完成 + + //前端二次审核 @AuthRuleAnnotation("") @PostMapping("/spms/inout/order/web/updateStatus") public BaseResponse webUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest, @@ -97,9 +119,34 @@ public class IoOrderReviewController extends BaseController { if (orderEntity == null) { return ResultVOUtils.error(500, "未找到该业务单据"); } - return updateReview(getUser(), orderEntity); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) { + return updateReview(getUser(), orderEntity); + } else if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + return thirdUpdateReview(getUser(), orderEntity); + } else { + return ResultVOUtils.error(500, "当前单据状态非处于审核状态!"); + } + + } + //前端第三次验收 + @AuthRuleAnnotation("") + @PostMapping("/spms/inout/order/third/updateStatus") + public BaseResponse thirdUpdateStatus(@RequestBody ReviewFinishRequest updateExportStatusRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + IoOrderEntity orderEntity = orderService.findByBillNo(updateExportStatusRequest.getOrderId()); + if (orderEntity == null) { + return ResultVOUtils.error(500, "未找到该业务单据"); + } + return thirdUpdateReview(getUser(), orderEntity); + } + + @Resource IoCodeService codeService; @Resource @@ -346,5 +393,19 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success("更新成功"); } + //前端第三次验收 + public BaseResponse thirdUpdateReview(AuthAdmin authAdmin, IoOrderEntity orderEntity) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + orderEntity.setReviewUser(authAdmin.getId() + ""); + orderEntity.setUpdateTime(new Date()); + orderEntity.setAuditTime(new Date()); + orderEntity.setDeliveryStatus(ConstantStatus.ORDER_DELIVERY_STATUS_ED); + orderService.update(orderEntity); + redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo()); + redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo()); + //验收完成->进入流程 + ioCheckInoutService.checkThird(orderEntity); + return ResultVOUtils.success("更新成功"); + } } diff --git a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java index 6aaf68c4a..b4a57714c 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPreinOrderController.java @@ -42,6 +42,8 @@ public class InvPreinOrderController extends BaseController { @GetMapping("/udiwms/inv/prein/filter") public BaseResponse filterOrder(FilterInvPreinRequest filterInvPreinRequest) { + + List list = invPreinOrderService.filterList(filterInvPreinRequest); PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); @@ -72,7 +74,7 @@ public class InvPreinOrderController extends BaseController { @AuthRuleAnnotation("") @GetMapping("spms/prein/inv/products/getDetaiByCode") public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) { - InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(filterInvProductDetailRequest.getCode()); + InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findUseOneByCode(filterInvProductDetailRequest.getCode()); if (invProductDetailEntity == null) { return ResultVOUtils.error(500, "预验收库存未存在此产品!"); } else { @@ -83,7 +85,7 @@ public class InvPreinOrderController extends BaseController { UdiEntity udiEntity = FilterUdiUtils.getUdi(filterInvProductDetailRequest.getCode()); if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 //无序列号,则可能存在多个预验收入库单 - List invPreinDetailEntities = invPreinDetailService.findByCode(filterInvProductDetailRequest.getCode()); + List invPreinDetailEntities = invPreinDetailService.findUseByCode(filterInvProductDetailRequest.getCode()); int count = 0; for (InvPreinDetailEntity temp : invPreinDetailEntities) { count = count + temp.getCount(); diff --git a/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java b/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java index 6d45a452a..36dce29a6 100644 --- a/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java +++ b/src/main/java/com/glxp/api/dao/basic/BasicBussinessTypeDao.java @@ -1,6 +1,7 @@ package com.glxp.api.dao.basic; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.FilterBussinessTypeRequest; import com.glxp.api.res.basic.BasicBussinessTypeResponse; @@ -10,7 +11,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper -public interface BasicBussinessTypeDao extends BaseMapper { +public interface BasicBussinessTypeDao extends BaseMapperPlus { /** diff --git a/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java b/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java index aa1f28aca..c7b9ed499 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiProductDao.java @@ -2,6 +2,7 @@ package com.glxp.api.dao.basic; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -35,6 +36,11 @@ public interface UdiProductDao { */ boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity); + /** + * 根据ID更新产品信息 + */ + boolean updateUdiInfoById(UdiProductEntity udiProductEntity); + boolean deleteById(@Param("id") String id); boolean deleteByUuid(@Param("uuid") String uuid); @@ -68,4 +74,6 @@ public interface UdiProductDao { * @return */ List selectGgxhList(@Param("relId") String relId); + + boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java b/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java index f94c51cb1..6cc812be6 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeLostMapper.java @@ -1,9 +1,14 @@ package com.glxp.api.dao.inout; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeLostEntity; +import com.glxp.api.res.inout.IoCodeLostResponse; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper -public interface IoCodeLostMapper extends BaseMapper { +public interface IoCodeLostMapper extends BaseMapperPlus { + List selectLost(IoCodeLostEntity ioCodeLostEntity); } + diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java index 1e8d6171b..5fb23a1fe 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailBizDao.java @@ -4,6 +4,7 @@ import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; import java.util.List; @@ -17,4 +18,6 @@ public interface IoOrderDetailBizDao extends BaseMapperPlus filterList(FilterOrderDetailBizRequest orderDetailBizRequest); + List filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest); + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java index a0a94066d..2a5fe106a 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java @@ -17,4 +17,13 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus filterList(FilterOrderDetailResultRequest orderDetailResultRequest); + /** + * 查询单据扫码明细VO列表 + * + * @param orderDetailResultRequest + * @return + */ + List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); + + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java new file mode 100644 index 000000000..b01220a1f --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java @@ -0,0 +1,13 @@ +package com.glxp.api.dao.inout; + + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inout.IoOrderInvoiceEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface IoOrderInvoiceMapper extends BaseMapperPlus { + + boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); + +} diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBusTypeChangeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBusTypeChangeEntity.java index c0e8beb2a..ebc250cb6 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBusTypeChangeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBusTypeChangeEntity.java @@ -81,6 +81,19 @@ public class BasicBusTypeChangeEntity { @TableField(value = "remark") private String remark; + + @TableField(value = "auditStatus") + private Integer auditStatus; + @TableField(value = "busAuditStatus") + private Integer busAuditStatus; + @TableField(value = "targetBusAction") + private String targetBusAction; + @TableField(value = "beforeTime") + private Integer beforeTime; + @TableField(value = "busBeforeTime") + private Integer busBeforeTime; + + public static final String COL_ID = "id"; public static final String COL_ORIGINACTION = "originAction"; @@ -104,4 +117,4 @@ public class BasicBusTypeChangeEntity { public static final String COL_UPDATETIME = "updateTime"; public static final String COL_REMARK = "remark"; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBusTypePreEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBusTypePreEntity.java index fbb3eaf2a..c81ca2e11 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBusTypePreEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBusTypePreEntity.java @@ -123,6 +123,19 @@ public class BasicBusTypePreEntity { @TableField(value = "remark") private String remark; + + /** + * 目标业务单 + */ + @TableField(value = "targetBusAction") + private String targetBusAction; + @TableField(value = "busBeforeTime") + private Integer busBeforeTime; + @TableField(value = "auditStatus") + private Integer auditStatus; + @TableField(value = "busAuditStatus") + private Integer busAuditStatus; + public static final String COL_ID = "id"; public static final String COL_INTRO = "intro"; @@ -158,4 +171,4 @@ public class BasicBusTypePreEntity { public static final String COL_UPDATETIME = "updateTime"; public static final String COL_REMARK = "remark"; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index 88f95033e..bbe36eb46 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -166,7 +166,7 @@ public class BasicBussinessTypeEntity { private boolean secCheckSp; /** - * 往来单位类型 1:客户信息;2:供应商信息;3:内部科室; 4:特殊往来; + * 往来单位类型 */ @TableField(value = "corpType") private int corpType; @@ -294,8 +294,8 @@ public class BasicBussinessTypeEntity { /** * 是否预入库 */ - @TableField(value = "advanceType") - private boolean advanceType; +// @TableField(value = "advanceType") +// private boolean advanceType; /** * 是否流转 @@ -312,8 +312,8 @@ public class BasicBussinessTypeEntity { /** * 是否预验收单据类型 */ - @TableField(value = "preIn") - private boolean preIn; +// @TableField(value = "preIn") +// private boolean preIn; @TableField(value = "preInBack") @@ -354,4 +354,47 @@ public class BasicBussinessTypeEntity { @TableField(value = "vailGroupBuy") private int vailGroupBuy; //校验是否集采产品 0:全部,1:只采集集采产品,2:只采集非集采产品 + + @TableField(value = "busType") + private Integer busType; //1:正常;2:送货;3.到货,4:退货 + + @TableField(value = "inStock") //是否更改库存,1:是;0:否 + private boolean inStock; + + + @TableField(value = "actionType") + private int actionType; //1:带票(正常);2.预验收。3:寄售 + + + @TableField(value = "thrCheckEnable") + private boolean thrCheckEnable; + @TableField(value = "thrCheckWebNew") + private boolean thrCheckWebNew; + @TableField(value = "thrCheckPdaUn") + private boolean thrCheckPdaUn; + @TableField(value = "thrCheckPdaEd") + private boolean thrCheckPdaEd; + @TableField(value = "thrCheckUdims") + private boolean thrCheckUdims; + @TableField(value = "thrCheckPc") + private boolean thrCheckPc; + @TableField(value = "thrCheckSp") + private boolean thrCheckSp; + @TableField(value = "thrCheckChange") + private boolean thrCheckChange; + @TableField(value = "thrCheckBalance") + private boolean thrCheckBalance; + @TableField(value = "thrCheckCopy") + private boolean thrCheckCopy; + + @TableField(value = "fillCodeRel") + private boolean fillCodeRel; + @TableField(value = "checkVailDate") + private boolean checkVailDate; + @TableField(value = "checkExpire") + private boolean checkExpire; + @TableField(value = "checkCertExpire") + private boolean checkCertExpire; + + } diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java index 964590fbb..e00c201b7 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeLostEntity.java @@ -72,6 +72,24 @@ public class IoCodeLostEntity { @TableField(value = "remark") private String remark; + + @TableField(value = "nameCode") + private String nameCode; + + @TableField(exist = false) + private String cpmctymc; + + @TableField(exist = false) + private String ggxh; + + @TableField(exist = false) + private String startTime; + + @TableField(exist = false) + private String endTime; + + + public static final String COL_ID = "id"; public static final String COL_CODE = "code"; diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index 3835b7222..9ba457a39 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -213,4 +213,17 @@ public class IoOrderEntity { @TableField(value = "exportStatus") private Integer exportStatus; + + @TableField(value = "busType") + private Integer busType; //1:正常;2:送货;3.到货 + + + @TableField(value = "deliveryStatus") + private Integer deliveryStatus; //单据送货验收状态 + + @TableField(value = "processStatus") + private Integer processStatus; //退货单据处理状态 + @TableField(value = "inCodeStatus") + private int inCodeStatus; //内部码生成状态 + } diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderInvoiceEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderInvoiceEntity.java new file mode 100644 index 000000000..3ddaf3971 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderInvoiceEntity.java @@ -0,0 +1,129 @@ +package com.glxp.api.entity.inout; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName(value = "io_order_invoice") +public class IoOrderInvoiceEntity { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 订单号外键 + */ + @TableField(value = "orderIdFk") + private String orderIdFk; + + /** + * 机器编码 + */ + @TableField(value = "machineNo") + private String machineNo; + + /** + * 发票代码 + */ + @TableField(value = "invoiceCode") + private String invoiceCode; + + /** + * 发票编码 + */ + @TableField(value = "invoiceEncode") + private String invoiceEncode; + + /** + * 开票日期 + */ + @TableField(value = "invoiceDate") + private String invoiceDate; + + /** + * 发票价格 + */ + @TableField(value = "price") + private String price; + + /** + * 更新是日期 + */ + @TableField(value = "updateTime") + private Date updateTime; + + /** + * 更新时间 + */ + @TableField(value = "`createUser`") + private String createUser; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + private String updateUser; + + @TableField(value = "bindRlFk") + private String bindRlFk; + + /** + * 批次号 + */ + @TableField(value = "batchNo") + private String batchNo; + + /** + * 生产日期 + */ + @TableField(value = "productDate") + private String productDate; + + /** + * 失效日期 + */ + @TableField(value = "expireDate") + private String expireDate; + + @TableField(value = "licenseUrl") + private String licenseUrl; + + + + @TableField(value = "remark") + private String remark; + + public static final String COL_ID = "id"; + + public static final String COL_ORDERIDFK = "orderIdFk"; + + public static final String COL_MACHINENO = "machineNo"; + + public static final String COL_INVOICECODE = "invoiceCode"; + + public static final String COL_INVOICEENCODE = "invoiceEncode"; + + public static final String COL_INVOICEDATE = "invoiceDate"; + + public static final String COL_PRICE = "price"; + + public static final String COL_UPDATETIME = "updateTime"; + + public static final String COL_CREATEUSER = "createUser"; + + public static final String COL_CREATETIME = "createTime"; + + public static final String COL_UPDATEUSER = "updateUser"; + + public static final String COL_REMARK = "remark"; +} diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java index f5101807a..52c5f3536 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreinDetailEntity.java @@ -60,6 +60,19 @@ public class InvPreinDetailEntity { @TableField(value = "relId") private Long relId; + /** + * 扫码数量 + */ + @TableField(value = "`originCount`") + private int originCount; + + /** + * 实际数量 + */ + @TableField(value = "originReCount") + private int originReCount; + + /** * 扫码数量 */ @@ -72,4 +85,10 @@ public class InvPreinDetailEntity { @TableField(value = "reCount") private int reCount; + /** + * 1:在库,2:已退回;3.已使用 + */ + @TableField(value = "status") + private int status; + } diff --git a/src/main/java/com/glxp/api/entity/purchase/PurOrderEntity.java b/src/main/java/com/glxp/api/entity/purchase/PurOrderEntity.java index 4fb537218..6d76fb3b8 100644 --- a/src/main/java/com/glxp/api/entity/purchase/PurOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/purchase/PurOrderEntity.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.util.Date; + import lombok.Data; @Data @@ -175,4 +177,4 @@ public class PurOrderEntity { public static final String COL_APPLYBILLNO = "applyBillNo"; public static final String COL_STOCKORDERNO = "stockOrderNo"; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index afdeffc90..ac0603cb5 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -1,5 +1,6 @@ package com.glxp.api.req.basic; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -274,5 +275,29 @@ public class BussinessTypeSaveRequest { private boolean preInBack; private boolean vailDispatch; //校验是否可配送 private int vailGroupBuy; //校验是否集采产品 0:全部,1:只采集集采产品,2:只采集非集采产品 + private Integer busType; //1:正常;2:送货;3.到货 + private int actionType; //1:带票(正常);2.预验收。3:寄售 + private boolean inStock; + + + private boolean thrCheckEnable; + private boolean thrCheckWebNew; + private boolean thrCheckPdaUn; + private boolean thrCheckPdaEd; + private boolean thrCheckUdims; + private boolean thrCheckPc; + private boolean thrCheckSp; + private boolean thrCheckChange; + private boolean thrCheckBalance; + private boolean thrCheckCopy; + + private boolean fillCodeRel; + + + + private boolean checkVailDate; + private boolean checkExpire; + private boolean checkCertExpire; + } diff --git a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java index 13ec0e496..2a1669858 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -103,5 +103,9 @@ public class FilterBussinessTypeRequest extends ListPageRequest { */ private Boolean preIn; + private Integer busType; + private Boolean inStock; + private Boolean fillCodeRel; + private String vueType; } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java index b342bcc7e..700c315c0 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java @@ -3,6 +3,8 @@ package com.glxp.api.req.inout; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + /** * 单据扫码明细查询参数 */ @@ -32,5 +34,16 @@ public class FilterOrderDetailResultRequest extends ListPageRequest { private int showType; private String productName; private String coName; - + private String spec; + private String formName; + private String startTime; + private String endTime; + private String fromCorpName; + private String startAduditTime; //起始日期 + private String endAduditTime; //结束日期 + private String fromCorp; + private String actionType; + private String manufacturer; + private String zczbhhzbapzbh; + private List actions; } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index e7ed5bfb8..df32acbc6 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -48,6 +48,17 @@ public class FilterOrderRequest extends ListPageRequest { */ private String endTime; + + /** + * 审核开始时间 + */ + private String startAduditTime; + + /** + * 审核结束时间 + */ + private String endAduditTime; + /** * 往来单位 */ @@ -128,9 +139,26 @@ public class FilterOrderRequest extends ListPageRequest { */ private String statusType; + /** + * 送货管理界面: supDelivery + * 到货单管理界面: supArrival + * 退货单管理界面: supReturned + * 采购入库单界面: supPurchase + * 发票登记界面: supInvoice + * 出入库明细账 norDetail + * 寄售出入库明细账 preDetail + */ + private String vueType; //页面类型 + + private Integer orderType; private Integer syncStatus; + /** + * 单据类型集合 + */ + private List actions; + /** * 单据状态集合 */ @@ -146,4 +174,6 @@ public class FilterOrderRequest extends ListPageRequest { private String corpName; + private Integer busType; + } diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java new file mode 100644 index 000000000..f0e4b5281 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java @@ -0,0 +1,86 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +import java.util.Date; + +/** + * @author : zhangsan + * @date : 2023/3/15 10:02 + * @modyified By : + */ +@Data +public class IoOrderInvoiceRequest { + + private Integer id; + + + private String orderIdFk; + + + private String machineNo; + + + private String invoiceCode; + + + private String invoiceEncode; + + + private String invoiceDate; + + + private String price; + + + private Date updateTime; + + + private String createUser; + + + private Date createTime; + + + private String updateUser; + + + private String bindRlFk; + + + private String batchNo; + + + private String productDate; + + + private String expireDate; + + private String licenseUrl; + + private String remark; + + public static final String COL_ID = "id"; + + public static final String COL_ORDERIDFK = "orderIdFk"; + + public static final String COL_MACHINENO = "machineNo"; + + public static final String COL_INVOICECODE = "invoiceCode"; + + public static final String COL_INVOICEENCODE = "invoiceEncode"; + + public static final String COL_INVOICEDATE = "invoiceDate"; + + public static final String COL_PRICE = "price"; + + public static final String COL_UPDATETIME = "updateTime"; + + public static final String COL_CREATEUSER = "createUser"; + + public static final String COL_CREATETIME = "createTime"; + + public static final String COL_UPDATEUSER = "updateUser"; + + public static final String COL_REMARK = "remark"; +} diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java index 29a6396be..67b722efd 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvPreinDetailRequest.java @@ -8,4 +8,17 @@ public class FilterInvPreinDetailRequest extends ListPageRequest { private String orderId; private String code; + private String productName; + private String ggxh; + private String manufactory; + private String zczbhhzbapzbh; + private String auditTime; + private String billNo; + private String invCode; + private String batchNo; + private String produceDate; + private String expireDate; + private String startAduditTime; + private String endAduditTime; + private String nameCode; } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBusTypePreResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBusTypePreResponse.java index 8c2b79a4f..fc7213cfd 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBusTypePreResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBusTypePreResponse.java @@ -28,5 +28,5 @@ public class BasicBusTypePreResponse extends BasicBusTypePreEntity { * 目标往来仓库名称 */ private String defaultInvName; - + private String targetBusName; } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index 7c422c077..7076379bc 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -1,5 +1,6 @@ package com.glxp.api.res.basic; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; /** @@ -41,7 +42,7 @@ public class BasicBussinessTypeResponse { /** * 是否预入库 */ - private Boolean advanceType; +// private Boolean advanceType; private Boolean changeEnable; private Boolean genUnit; private String defaultUnit; @@ -81,7 +82,7 @@ public class BasicBussinessTypeResponse { private String prefix; private String localPrefix; - private boolean preIn; + // private boolean preIn; private boolean preInBack; private boolean outToSpms; private boolean ullageFill; @@ -126,5 +127,25 @@ public class BasicBussinessTypeResponse { private boolean vailDispatch; //校验是否可配送 private int vailGroupBuy; //校验是否集采产品 0:全部,1:只采集集采产品,2:只采集非集采产品 + private Integer busType; //1:正常;2:送货;3.到货 + private int actionType; //1:带票(正常);2.预验收。3:寄售 + private boolean inStock; + + private boolean thrCheckEnable; + private boolean thrCheckWebNew; + private boolean thrCheckPdaUn; + private boolean thrCheckPdaEd; + private boolean thrCheckUdims; + private boolean thrCheckPc; + private boolean thrCheckSp; + private boolean thrCheckChange; + private boolean thrCheckBalance; + private boolean thrCheckCopy; + + private boolean fillCodeRel; + + private boolean checkVailDate; + private boolean checkExpire; + private boolean checkCertExpire; } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 6dea4cdfd..e75499eae 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -96,7 +96,6 @@ public class UdiRelevanceResponse { private Integer isDateBy; private String relCode; - //关联查询字典 private String unitFk; //供应商ID private String companyName; //供应商名称 @@ -105,6 +104,10 @@ public class UdiRelevanceResponse { private Long relId; private boolean dispatch; //是否可配送 private boolean groupBuy; //是否集采产品 + private boolean needCert; //是否需要资质材料 + + private String classifyName; //物资分类名称 + public int getBhzxxsbzsl() { if (bhzxxsbzsl == null || bhzxxsbzsl == 0) { @@ -138,13 +141,4 @@ public class UdiRelevanceResponse { return false; return isUseDy; } - - - public Integer getIsDateBy() { - return isDateBy; - } - - public void setIsDateBy(Integer isDateBy) { - this.isDateBy = isDateBy; - } } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeLostResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeLostResponse.java new file mode 100644 index 000000000..8a2cecd40 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoCodeLostResponse.java @@ -0,0 +1,69 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +import java.util.Date; + +/** + * @author : zhangsan + * @date : 2023/3/22 11:08 + * @modyified By : + */ +@Data +public class IoCodeLostResponse { + + private Integer id; + + private String code; + + + private String batchNo; + + + private String produceDate; + + + private String expireDate; + + + private String serialNo; + + + private String supId; + + + private Date createTime; + + + private Date updateTime; + + + private String remark; + + //产品名称 + private String cpmctymc; + //规格型号 + private String ggxh; + + public static final String COL_ID = "id"; + + public static final String COL_CODE = "code"; + + public static final String COL_BATCHNO = "batchNo"; + + public static final String COL_PRODUCEDATE = "produceDate"; + + public static final String COL_EXPIREDATE = "expireDate"; + + public static final String COL_SERIALNO = "serialNo"; + + public static final String COL_SUPID = "supId"; + + public static final String COL_CREATETIME = "createTime"; + + public static final String COL_UPDATETIME = "updateTime"; + + public static final String COL_REMARK = "remark"; + + +} diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java new file mode 100644 index 000000000..04220ceb4 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java @@ -0,0 +1,111 @@ +package com.glxp.api.res.inout; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName(value = "io_order_invoice") +public class IoOrderInvoiceResponse { + private Integer id; + + /** + * 订单号外键 + */ + private String orderIdFk; + + /** + * 机器编码 + */ + private String machineNo; + + /** + * 发票代码 + */ + private String invoiceCode; + + /** + * 发票编码 + */ + private String invoiceEncode; + + /** + * 开票日期 + */ + private String invoiceDate; + + /** + * 发票价格 + */ + private String price; + + /** + * 更新是日期 + */ + private Date updateTime; + + /** + * 更新时间 + */ + private String createUser; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateUser; + + private String bindRlFk; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 生产日期 + */ + private String productDate; + + /** + * 失效日期 + */ + private String expireDate; + + private String remark; + + private String cpmctymc; + + private String ggxh; + private String licenseUrl; + + + public static final String COL_ID = "id"; + + public static final String COL_ORDERIDFK = "orderIdFk"; + + public static final String COL_MACHINENO = "machineNo"; + + public static final String COL_INVOICECODE = "invoiceCode"; + + public static final String COL_INVOICEENCODE = "invoiceEncode"; + + public static final String COL_INVOICEDATE = "invoiceDate"; + + public static final String COL_PRICE = "price"; + + public static final String COL_UPDATETIME = "updateTime"; + + public static final String COL_CREATEUSER = "createUser"; + + public static final String COL_CREATETIME = "createTime"; + + public static final String COL_UPDATEUSER = "updateUser"; + + public static final String COL_REMARK = "remark"; +} diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java index 5ef70d95c..c047b9e76 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java @@ -216,12 +216,20 @@ public class IoOrderResponse { */ private Integer exportStatus; + private Integer deliveryStatus; + private Integer processStatus; + private int inCodeStatus; + + /** * 校验信息 */ private String errMsg; + private Integer busType; //1:正常;2:送货;3.到货 + + public String getFromName() { if (StrUtil.isNotEmpty(fromCorpName)) diff --git a/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java b/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java index a765fc1c9..bc8e413a4 100644 --- a/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvPreinDetailResponse.java @@ -56,11 +56,23 @@ public class InvPreinDetailResponse { */ private int count; + + private Integer originReCount; + /** * 实际数量 */ private int reCount; - + private Integer status; private String productName; + private String ggxh; + private String manufactory; + private String zczbhhzbapzbh; + private String auditTime; + private String billNo; + private String invName; + private String measname; + private String fromName; + } diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java index ff9f3e0ea..3c1c0284e 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java @@ -67,7 +67,7 @@ public interface IBasicBussinessTypeService { * * @param bussinessTypeEntity */ - boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity,String id); + boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity, String id); /** * 查询单据类型实体列表,不分页 @@ -110,4 +110,7 @@ public interface IBasicBussinessTypeService { boolean checkBusTypeNameExists(String name, Integer id); List selectIgnoreSelf(String action); + + + List findByVueType(String vueType); } diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index becb911f0..446c31592 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import org.apache.ibatis.annotations.Param; @@ -36,6 +37,8 @@ public interface UdiProductService { boolean updateUdiInfoByUuid(UdiProductEntity udiProductEntity); + boolean updateUdiInfoById(UdiProductEntity udiProductEntity); + boolean deleteById(String id); boolean deleteByUuid(String uuid); @@ -47,4 +50,7 @@ public interface UdiProductService { * @return */ List getGgxhList(String relId); + + boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest); + } diff --git a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java index 82022016e..808f2baf1 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java @@ -21,6 +21,7 @@ public interface UdiRelevanceService { UdiRelevanceResponse selectByNameCode(String nameCode); + UdiRelevanceResponse selectSupGroupById(Long id); //根据DI查询产品信息 List selectAllByNameCode(String nameCode); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 7577ec257..b64384827 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.dao.basic.BasicBussinessTypeDao; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; @@ -19,6 +21,7 @@ import javax.annotation.Resource; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -126,8 +129,8 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService } @Override - public boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity,String id) { - setUpdateInfoById(bussinessTypeEntity,id); + public boolean insertIgnoreBussinessType(BasicBussinessTypeEntity bussinessTypeEntity, String id) { + setUpdateInfoById(bussinessTypeEntity, id); return basicBussinessTypeDao.insertIgnoreBussinessType(bussinessTypeEntity); } @@ -188,6 +191,39 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService return list; } + @Override + public List findByVueType(String vueType) { + + List bussinessTypeEntities = null; + + switch (vueType) { + case Constant.ORDER_ACTION_NOR_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 1).eq("inStock", true)); + break; + + case Constant.ORDER_ACTION_PRE_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 3).eq("inStock", true)); + break; + case Constant.ORDER_ACTION_SUP_DELIVERY: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .eq("spUse", true).eq("inStock", false)); + + break; + case Constant.ORDER_ACTION_SUP_INVOICE: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .eq("spUse", true).eq("actionType", 1)); + break; + default: + break; + } + + return bussinessTypeEntities; + } + /** * 统一设置创建/更新信息 * @@ -205,7 +241,7 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService } - private void setUpdateInfoById(BasicBussinessTypeEntity bussinessTypeEntity,String id) { + private void setUpdateInfoById(BasicBussinessTypeEntity bussinessTypeEntity, String id) { Date now = new Date(); diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java index 1f9e17fa5..8f2253aed 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.UdiProductDao; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.req.basic.FilterUdiRelRequest; +import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.util.udi.FilterUdiUtils; @@ -115,6 +116,12 @@ public class UdiProductServiceImpl implements UdiProductService { return udiProductDao.updateUdiInfoByUuid(udiProductEntity); } + @Override + public boolean updateUdiInfoById(UdiProductEntity udiProductEntity) { + return udiProductDao.updateUdiInfoById(udiProductEntity); + } + + @Override public boolean deleteById(String id) { return udiProductDao.deleteById(id); @@ -129,4 +136,11 @@ public class UdiProductServiceImpl implements UdiProductService { public List getGgxhList(String relId) { return udiProductDao.selectGgxhList(relId); } + + @Override + public boolean updateUdiInfoNotAll(UdiInfoRequest udiInfoRequest) { + if (StrUtil.isEmpty(udiInfoRequest.getUuid())) + return false; + return udiProductDao.updateUdiInfoNotAll(udiInfoRequest); + } } diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java index d3817392e..a6b55be11 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiRelevanceServiceImpl.java @@ -69,6 +69,17 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService { return udiRelevanceResponses; } + @Override + public UdiRelevanceResponse selectSupGroupById(Long id) { + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + filterUdiRelRequest.setId(id); + filterUdiRelRequest.setDiType(1); + List data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest); + if (data != null && data.size() > 0) + return data.get(0); + return null; + } + @Override public UdiRelevanceResponse selectByNameCode(String nameCode) { FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index d8c11b8ce..05ddcbca0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -356,7 +356,7 @@ public class IoAddInoutService { BasicBussinessTypeEntity supplementType = basicBussinessTypeService.findByAction(bussinessTypeEntity.getSupplementOrderType()); supplementOrder.setMainAction(supplementType.getMainAction()); supplementOrder.setAction(supplementType.getAction()); - + supplementOrder.setBusType(supplementType.getBusType()); //复制码表 List codes = codeService.findByOrderId(orderId); List supplementCodes = new ArrayList<>(); @@ -448,6 +448,7 @@ public class IoAddInoutService { orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + ""); orderSaveRequest.setUpdateTime(new Date()); + orderSaveRequest.setBusType(bussinessTypeEntity.getBusType()); orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN); if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); diff --git a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java new file mode 100644 index 000000000..8e241a4f0 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -0,0 +1,253 @@ +package com.glxp.api.service.inout; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.constant.ConstantType; +import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.basic.BasicBusTypePreEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.inout.IoCodeEntity; +import com.glxp.api.entity.inout.IoCodeTempEntity; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.entity.system.SystemParamConfigEntity; +import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.service.basic.IBasicBusTypePreService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.inv.InvProductDetailService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.CustomUtil; +import com.glxp.api.util.DateUtil; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +/** + * 单据流转 + */ +@Service +public class IoChangeInoutService { + + @Resource + IBasicBusTypePreService basicBusTypePreService; + @Resource + IoCodeService codeService; + @Resource + IoOrderService orderService; + @Resource + InvProductDetailService invProductDetailService; + @Resource + IBasicBussinessTypeService basicBussinessTypeService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + IoAddInoutService addInoutService; + @Resource + IoCheckInoutService ioCheckInoutService; + @Resource + InvWarehouseService invWarehouseService; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + IoCodeTempService codeTempService; + + public void changeOrder(IoOrderEntity orderEntity) { + + BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); + List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); + if (basicBusTypePreEntity != null) { + buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); + }else { + //结束,不生成库存, + } + + + + } + + + //后续做修改 + public void changeBusOrder(IoOrderEntity orderEntity) { + + } + + + //普通出入库单据流转 + public void genNewOrder(IoOrderEntity orderEntity, List invProductDetailEntities) { + + BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); + List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); + if (basicBusTypePreEntity.getSupplementAll()) {//全量补单 + invProductDetailService.insertList(invProductDetailEntities); + buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); + } else { //缺量补单 + List inList = new ArrayList<>(); + for (IoCodeEntity warehouseEntity : codeEnttities) { + Integer invCount = getInvCount(warehouseEntity); + Integer count = warehouseEntity.getMyReCount(); + if (invCount > 0) {//仓库已存在该产品 + if (count > invCount) { //当前数量>结余数量,说明该产品是无序列号或者是多级包装 + if (count > invCount) { //该产品实际数量大于结余数量,说明是多级包装,直接补 + inList.add(warehouseEntity); + } else if (warehouseEntity.getSerialNo() == null) { //无序列号(多级包装无序列号的已在上一步被排除),补齐数量 + int lea = count - invCount; + warehouseEntity.setCount(lea / (count)); // + inList.add(warehouseEntity); + } + } + } else { //结余数量《=0直接补 + inList.add(warehouseEntity); + } + InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode()); + invProductDetailService.insert(invProductDetailEntity); + } + buildInOrder(basicBusTypePreEntity, inList, orderEntity); + } + } + + public InvProductDetailEntity filterInvByCode(List invProductDetailEntities, String + code) { + for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { + if (invProductDetailEntity.getCode().equals(code)) { + return invProductDetailEntity; + } + } + return null; + } + + //计算当前库存数量 + public int getInvCount(IoCodeEntity codeEntity) { + + List resultLists = invProductDetailService.selectByUnique(codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getSupId(), codeEntity.getDeptCode(), codeEntity.getInvCode()); + int invCount = 0; + if (CollUtil.isNotEmpty(resultLists)) { + for (InvProductDetailEntity invProductDetailEntity : resultLists) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + invCount = invCount - invProductDetailEntity.getReCount(); + } else { + invCount = invCount + invProductDetailEntity.getReCount(); + } + } + } + return invCount; + } + + //生成单据 + public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List useInList, IoOrderEntity orderEntity) { + if (useInList.size() <= 0) { + return; + } + Map> filterSupMaps = new HashMap<>(); + BasicBussinessTypeEntity targetBustypeEntity = basicBussinessTypeService.findByAction(bussinessChangeTypeEntity.getAction()); + //过滤供应商 + if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + for (IoCodeEntity warehouseEntity : useInList) { + if (warehouseEntity.getSupId() != null) { + if (filterSupMaps.get(warehouseEntity.getSupId()) == null) { + List temps = new ArrayList<>(); + temps.add(warehouseEntity); + filterSupMaps.put(warehouseEntity.getSupId(), temps); + } else { + filterSupMaps.get(warehouseEntity.getSupId()).add(warehouseEntity); + } + } + } + } else { +// 原先单据流程 + filterSupMaps.put("test", useInList); +// filterSupMaps.put(bussinessChangeTypeEntity.getDefaultInvCode(), useInList); + } + //根据往来单位生成入库单 + for (String corpName : filterSupMaps.keySet()) { + List temps; + temps = filterSupMaps.get(corpName); + IoOrderEntity outOrder = new IoOrderEntity(); + BeanUtils.copyProperties(orderEntity, outOrder); + outOrder.setId(null); + outOrder.setSupplementNo(null);//补单需置空 + if (bussinessChangeTypeEntity.getBeforeTime() != null) + outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime())); + else + outOrder.setCreateTime(DateUtil.fromDate(orderEntity)); + outOrder.setAction(targetBustypeEntity.getAction()); + outOrder.setMainAction(targetBustypeEntity.getMainAction()); + outOrder.setBusType(targetBustypeEntity.getBusType()); + outOrder.setFromType(ConstantStatus.FROM_CHANGE); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd")); + outOrder.setBillNo(orderNo); + + if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + outOrder.setCustomerId(corpName); + outOrder.setFromCorp(corpName); + outOrder.setFromInvCode(null); + outOrder.setFromDeptCode(null); + } else { + outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); + + + InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); + InvWarehouseEntity upInv = invWarehouseService.findByInvSubByCode(curInv.getParentCode()); + outOrder.setFromInvCode(upInv.getCode()); + outOrder.setFromDeptCode(upInv.getParentId()); + //原先流程---使用流转单据默认仓库 +// outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode()); +// outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode()); + outOrder.setFromCorp(null); + } + outOrder.setCorpOrderId(CustomUtil.getId() + "x"); + //原先流程---使用流转单据默认仓库 +// InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode()); +// outOrder.setInvCode(invWarehouseEntity.getCode()); +// outOrder.setDeptCode(invWarehouseEntity.getParentId()); + + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); + outOrder.setInvCode(invWarehouseEntity.getCode()); + outOrder.setDeptCode(invWarehouseEntity.getParentId()); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); + if ("1".equals(systemParamConfigEntity.getParamValue())) { + outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + } else { + outOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); + } + + //互填单号 + orderEntity.setUllageSupNo(outOrder.getBillNo()); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + outOrder.setOriginUllageSupNo(orderEntity.getBillNo()); + outOrder.setCreateUser(null); + outOrder.setReviewUser(null); + orderService.insertOrder(outOrder); + List codeTempEntities = new ArrayList<>(); + for (IoCodeEntity warehouseEntity : temps) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtils.copyProperties(warehouseEntity, codeTempEntity); + codeTempEntity.setId(null); + codeTempEntity.setOrderId(outOrder.getBillNo()); + codeTempEntity.setAction(outOrder.getAction()); + codeTempEntity.setMainAction(outOrder.getMainAction()); + codeTempEntities.add(codeTempEntity); + } + codeTempService.insertBatch(codeTempEntities); + + //根据单据设置状态 1:草稿 + if (bussinessChangeTypeEntity.getAuditStatus() == 1) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderService.update(orderEntity); + } else if (bussinessChangeTypeEntity.getAuditStatus() == 2 || bussinessChangeTypeEntity.getAuditStatus() == 3) { + addInoutService.dealProcess(outOrder); + if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) { + ioCheckInoutService.check(outOrder.getBillNo()); + } + } + } + } + + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 9eaebd5b2..eebb2bc26 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -6,6 +6,7 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.res.inout.IoOrderCheckResultResponse; @@ -16,6 +17,7 @@ import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinOrderService; import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -96,7 +98,7 @@ public class IoCheckInoutService { } } - //校验流程 + //校验流程 //一次校验 public void check(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); //过滤非未校验或校验异常 @@ -156,6 +158,49 @@ public class IoCheckInoutService { } } + @Resource + IoCodeLostService codeLostService; + + @Async + public void genLostCode(String orderId) { + List ioCodeEntities = codeService.findByOrderId(orderId); + for (IoCodeEntity codeEntity : ioCodeEntities) { + + + UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEntity.getCode()); + + IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeEntity.getCode()); + if (codeLostEntity == null) + codeLostEntity = new IoCodeLostEntity(); + + //校验是否写入缺失表 + boolean isTrue = false; + if (udiEntity != null) { + if (!StrUtil.trimToEmpty(codeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { + if (StrUtil.isNotEmpty(codeEntity.getBatchNo())) { + codeLostEntity.setBatchNo(codeEntity.getBatchNo()); + isTrue = true; + } + } + if (!StrUtil.trimToEmpty(codeEntity.getProduceDate()).equals(StrUtil.trimToEmpty(udiEntity.getProduceDate()))) { + if (StrUtil.isNotEmpty(codeEntity.getProduceDate())) { + codeLostEntity.setProduceDate(codeEntity.getProduceDate()); + isTrue = true; + } + } + if (!StrUtil.trimToEmpty(codeEntity.getExpireDate()).equals(StrUtil.trimToEmpty(udiEntity.getExpireDate()))) { + if (StrUtil.isNotEmpty(codeEntity.getExpireDate())) { + codeLostEntity.setExpireDate(codeEntity.getExpireDate()); + isTrue = true; + } + } + if (isTrue) + codeLostService.insertOrUpdate(codeLostEntity); + } + + } + } + public String checkCode(IoCodeTempEntity codeEntity) { boolean isBillExit = orderDetailBizService.isExit(codeEntity.getOrderId()); @@ -229,9 +274,11 @@ public class IoCheckInoutService { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); - checkSecond(orderEntity); +// genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); } + //一次校验完成 public void checkFirstFinish(IoOrderEntity orderEntity) { List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); @@ -332,7 +379,11 @@ public class IoCheckInoutService { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); - checkSecond(orderEntity); + //生成缺失码 +// genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + + } } @@ -431,6 +482,8 @@ public class IoCheckInoutService { bizEntity.setCheckSuccess(true); codeEntity.setCheckSuccess(true); bizEntity.setScanCount(codeEntity.getReCount()); + ioOrderCheckResultResponse.setScanCount(bizEntity.getScanCount()); + ioOrderCheckResultResponse.setCheckSuccess(true); isPass = true; orderCheckResultResponses.add(ioOrderCheckResultResponse); break; @@ -456,6 +509,7 @@ public class IoCheckInoutService { ioOrderCheckResultResponse.setSProductDate(codeEntity.getProductDate()); ioOrderCheckResultResponse.setSExpireDate(codeEntity.getExpireDate()); ioOrderCheckResultResponse.setCount(0); + ioOrderCheckResultResponse.setScanCount(codeEntity.getReCount()); orderCheckResultResponses.add(ioOrderCheckResultResponse); } } @@ -533,6 +587,59 @@ public class IoCheckInoutService { } + //三次校验(中间层) + public void checkThird(IoOrderEntity orderEntity) { + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_AUDITED && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW) { + if (bussinessTypeEntity.isThrCheckEnable()) { + if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { + if (!bussinessTypeEntity.isThrCheckUdims()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { + if (!bussinessTypeEntity.isThrCheckWebNew()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { + if (!bussinessTypeEntity.isThrCheckPdaEd()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { + if (!bussinessTypeEntity.isThrCheckPdaUn()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { + if (!bussinessTypeEntity.isThrCheckPc()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { + if (!bussinessTypeEntity.isThrCheckChange()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { + if (!bussinessTypeEntity.isThrCheckBalance()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { + if (!bussinessTypeEntity.isThrCheckCopy()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } + } else { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); + } + } + + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) { + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_REW); + orderEntity.setUpdateTime(new Date()); + orderEntity.setAuditTime(new Date()); + orderService.update(orderEntity); + checkSecond(orderEntity); + } + } + + //二次校验 public void checkSecond(IoOrderEntity orderEntity) { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); @@ -579,11 +686,15 @@ public class IoCheckInoutService { if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_CHECK); orderEntity.setUpdateTime(new Date()); + orderEntity.setAuditTime(new Date()); orderService.update(orderEntity); genInv(orderEntity, bussinessTypeEntity); } } + @Resource + IoChangeInoutService changeInoutService; + //校验完成后生成库存 public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { @@ -596,8 +707,12 @@ public class IoCheckInoutService { for (IoCodeEntity warehouseEntity : codeList) { List invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode()); if (invProductDetailEntities.size() > 0) { - for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) + for (InvPreinDetailEntity invPreinDetailEntity : invProductDetailEntities) { preInOrder.put(invPreinDetailEntity.getOrderId(), invPreinDetailEntity.getOrderId()); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_USE); + invPreinDetailService.update(invPreinDetailEntity); + } + } } if (preInOrder.size() > 0) { @@ -612,7 +727,8 @@ public class IoCheckInoutService { BasicBussinessTypeEntity preBusType = basicBussinessTypeService.findByAction(preInEntity.getAction()); //预验收不删除单号,方便后续查询 if (preBusType.isPreInBack()) { //预验收如果带回,则清空相关预验收库存; - invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); + invPreinDetailService.updateBack(preInEntity.getBillNo()); +// invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); } else { //预验收如果不带回,则清除已出库相关库存 for (IoCodeEntity codeEntity : codeList) { if (StrUtil.isEmpty(codeEntity.getSerialNo())) { @@ -627,15 +743,17 @@ public class IoCheckInoutService { if (count >= 0) { isBreak = true; if (count == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } else { + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); invPreinDetailEntity.setCount(count); invPreinDetailService.update(invPreinDetailEntity); } int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount(); if (reCount == 0) { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } else { + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); invPreinDetailEntity.setReCount(reCount); invPreinDetailService.update(invPreinDetailEntity); } @@ -644,7 +762,7 @@ public class IoCheckInoutService { } } else { - invPreinDetailService.deleteByCode(key, codeEntity.getCode()); +// invPreinDetailService.deleteByCode(key, codeEntity.getCode()); } } @@ -658,15 +776,24 @@ public class IoCheckInoutService { } } - //生成库存 - if (bussinessTypeEntity.isPreIn()) { - genInvService.genPreInInv(orderEntity.getBillNo()); - } else if (bussinessTypeEntity.isAdvanceType()) { - genInvService.genPreInv(orderEntity.getBillNo()); + + //校验是否是不入库存单据 + if (bussinessTypeEntity.isInStock()) { +// if (bussinessTypeEntity.getBusType() == ConstantStatus.BUS_TYPE_NORMAL) { + //生成库存 + if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { + genInvService.genPreInInv(orderEntity.getBillNo()); + } else if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { + genInvService.genPreInv(orderEntity.getBillNo()); + } else { + genInvService.genNorInv(orderEntity.getBillNo()); + } } else { - genInvService.genNorInv(orderEntity.getBillNo()); + //不入库存,直接进行单据流转 + changeInoutService.changeOrder(orderEntity); } + } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java index 66e8d5b57..aafe62e72 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeLostService.java @@ -1,13 +1,20 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoCodeLostEntity; +import com.glxp.api.res.inout.IoCodeLostResponse; + +import java.util.List; public interface IoCodeLostService { + List selectLost(IoCodeLostEntity ioCodeLostEntity); + + IoCodeLostEntity findByCode(String code); int insert(IoCodeLostEntity ioCodeLostEntity); + boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity); int deleteByCode(String code); diff --git a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java index 28c123cff..e4cce5b15 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -8,6 +8,7 @@ import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBusTypePreEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; @@ -42,8 +43,7 @@ public class IoGenInvService { InvPreinOrderService invPreinOrderService; @Resource InvPreinDetailService invPreinDetailService; - @Resource - IBasicBussinessTypeService basicBussinessTypeService; + @Resource IoOrderService orderService; @Resource @@ -52,14 +52,10 @@ public class IoGenInvService { IoCodeService codeService; @Resource IBasicBusTypePreService basicBusTypePreService; + + @Resource - GennerOrderUtils gennerOrderUtils; - @Resource - InvWarehouseService invWarehouseService; - @Resource - SystemParamConfigService systemParamConfigService; - @Resource - IoCodeTempService codeTempService; + IoChangeInoutService ioChangeInoutService; //生成普通库存 @@ -111,7 +107,7 @@ public class IoGenInvService { } BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); if (basicBusTypePreEntity != null) { //进行单据流转 - genNewOrder(orderEntity, invProductDetailEntities); + ioChangeInoutService.genNewOrder(orderEntity, invProductDetailEntities); } else { //生成库存结束 invProductDetailService.insertList(invProductDetailEntities); } @@ -125,6 +121,7 @@ public class IoGenInvService { @Resource InvPreProductDetailService invPreProductDetailService; + //生成寄售库存 public void genPreInv(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailResultEntities = orderDetailResultService.findByOrderId(orderId); @@ -189,6 +186,9 @@ public class IoGenInvService { InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); BeanUtils.copyProperties(codeEntity, invPreinDetailEntity); invPreinDetailEntity.setId(null); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_IN); + invPreinDetailEntity.setOriginCount(codeEntity.getCount()); + invPreinDetailEntity.setOriginReCount(codeEntity.getReCount()); invPreinDetailEntities.add(invPreinDetailEntity); }); @@ -197,163 +197,4 @@ public class IoGenInvService { } - //单据流转 - public void genNewOrder(IoOrderEntity orderEntity, List invProductDetailEntities) { - - BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); - List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); - if (basicBusTypePreEntity.getSupplementAll()) {//全量补单 - invProductDetailService.insertList(invProductDetailEntities); - buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); - } else { //缺量补单 - List inList = new ArrayList<>(); - for (IoCodeEntity warehouseEntity : codeEnttities) { - Integer invCount = getInvCount(warehouseEntity); - Integer count = warehouseEntity.getMyReCount(); - if (invCount > 0) {//仓库已存在该产品 - if (count > invCount) { //当前数量>结余数量,说明该产品是无序列号或者是多级包装 - if (count > invCount) { //该产品实际数量大于结余数量,说明是多级包装,直接补 - inList.add(warehouseEntity); - } else if (warehouseEntity.getSerialNo() == null) { //无序列号(多级包装无序列号的已在上一步被排除),补齐数量 - int lea = count - invCount; - warehouseEntity.setCount(lea / (count)); // - inList.add(warehouseEntity); - } - } - } else { //结余数量《=0直接补 - inList.add(warehouseEntity); - } - InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode()); - invProductDetailService.insert(invProductDetailEntity); - } - buildInOrder(basicBusTypePreEntity, inList, orderEntity); - } - } - - - public InvProductDetailEntity filterInvByCode(List invProductDetailEntities, String - code) { - for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { - if (invProductDetailEntity.getCode().equals(code)) { - return invProductDetailEntity; - } - } - return null; - } - - - //生成单据 - public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List useInList, IoOrderEntity orderEntity) { - if (useInList.size() <= 0) { - return; - } - Map> filterSupMaps = new HashMap<>(); - BasicBussinessTypeEntity targetBustypeEntity = basicBussinessTypeService.findByAction(bussinessChangeTypeEntity.getAction()); - //过滤供应商 - if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { - for (IoCodeEntity warehouseEntity : useInList) { - if (warehouseEntity.getSupId() != null) { - if (filterSupMaps.get(warehouseEntity.getSupId()) == null) { - List temps = new ArrayList<>(); - temps.add(warehouseEntity); - filterSupMaps.put(warehouseEntity.getSupId(), temps); - } else { - filterSupMaps.get(warehouseEntity.getSupId()).add(warehouseEntity); - } - } - } - } else { - filterSupMaps.put(bussinessChangeTypeEntity.getDefaultInvCode(), useInList); - } - //根据往来单位生成入库单 - for (String corpName : filterSupMaps.keySet()) { - List temps; - temps = filterSupMaps.get(corpName); - IoOrderEntity outOrder = new IoOrderEntity(); - BeanUtils.copyProperties(orderEntity, outOrder); - outOrder.setId(null); - outOrder.setSupplementNo(null);//补单需置空 - if (bussinessChangeTypeEntity.getBeforeTime() != null) - outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime())); - else - outOrder.setCreateTime(DateUtil.fromDate(orderEntity)); - outOrder.setAction(targetBustypeEntity.getAction()); - outOrder.setMainAction(targetBustypeEntity.getMainAction()); - - outOrder.setFromType(ConstantStatus.FROM_CHANGE); - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd")); - outOrder.setBillNo(orderNo); - - if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { - outOrder.setCustomerId(corpName); - outOrder.setFromCorp(corpName); - outOrder.setFromInvCode(null); - outOrder.setFromDeptCode(null); - } else { - outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); - outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode()); - outOrder.setFromDeptCode(bussinessChangeTypeEntity.getDefaultDeptCode()); - outOrder.setFromCorp(null); - } - outOrder.setCorpOrderId(CustomUtil.getId() + "x"); - InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode()); - outOrder.setInvCode(invWarehouseEntity.getCode()); - outOrder.setDeptCode(invWarehouseEntity.getParentId()); - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); - if ("1".equals(systemParamConfigEntity.getParamValue())) { - outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); - } else { - outOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); - } - - //互填单号 - orderEntity.setUllageSupNo(outOrder.getBillNo()); - orderEntity.setUpdateTime(new Date()); - orderService.update(orderEntity); - outOrder.setOriginUllageSupNo(orderEntity.getBillNo()); - outOrder.setCreateUser(null); - outOrder.setReviewUser(null); - orderService.insertOrder(outOrder); - List codeTempEntities = new ArrayList<>(); - for (IoCodeEntity warehouseEntity : temps) { - IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); - BeanUtils.copyProperties(warehouseEntity, codeTempEntity); - codeTempEntity.setId(null); - codeTempEntity.setOrderId(outOrder.getBillNo()); - codeTempEntity.setAction(outOrder.getAction()); - codeTempEntity.setMainAction(outOrder.getMainAction()); - codeTempEntities.add(codeTempEntity); - } - codeTempService.insertBatch(codeTempEntities); - addInoutService.dealProcess(outOrder); - if (!ioCheckInoutService.checkManual(outOrder.getBillNo())) { - ioCheckInoutService.check(outOrder.getBillNo()); - } - } - } - - @Resource - IoAddInoutService addInoutService; - @Resource - IoCheckInoutService ioCheckInoutService; - - - //计算当前库存数量 - public int getInvCount(IoCodeEntity codeEntity) { - - List resultLists = invProductDetailService.selectByUnique(codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getSupId(), codeEntity.getDeptCode(), codeEntity.getInvCode()); - int invCount = 0; - if (CollUtil.isNotEmpty(resultLists)) { - for (InvProductDetailEntity invProductDetailEntity : resultLists) { - if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { - invCount = invCount - invProductDetailEntity.getReCount(); - } else { - invCount = invCount + invProductDetailEntity.getReCount(); - } - } - } - return invCount; - } - - } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java index 5430db0d0..b263bdaa2 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; import java.util.List; @@ -34,4 +35,7 @@ public interface IoOrderDetailBizService { IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo,String bindRlFk); List checkOrderList(String orderId); + + List filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest); + } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java index 5c7a3b25f..fc8e1f92f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -22,4 +22,6 @@ public interface IoOrderDetailResultService { List filterList(FilterOrderDetailResultRequest orderDetailResultRequest); + List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); + } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java new file mode 100644 index 000000000..b483b537d --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java @@ -0,0 +1,15 @@ +package com.glxp.api.service.inout; + + +import com.glxp.api.entity.inout.IoOrderInvoiceEntity; +import com.glxp.api.req.inout.IoOrderInvoiceRequest; + +public interface IoOrderInvoiceService { + + boolean deleteByInvId(Integer id); + + boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest); + + boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index 51a244f04..735112a95 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -74,6 +74,8 @@ public interface IoOrderService { */ void setFilterStatus(FilterOrderRequest filterOrderRequest); + List setActions(FilterOrderRequest filterOrderRequest); + /** * 查询单号关联的所有单据数据 * diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java index ddf611c7d..aeb5e9ab4 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeLostServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.inout.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.res.inout.IoCodeLostResponse; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -9,6 +10,8 @@ import com.glxp.api.dao.inout.IoCodeLostMapper; import com.glxp.api.entity.inout.IoCodeLostEntity; import com.glxp.api.service.inout.IoCodeLostService; +import java.util.List; + @Service public class IoCodeLostServiceImpl implements IoCodeLostService { @@ -16,6 +19,11 @@ public class IoCodeLostServiceImpl implements IoCodeLostService { IoCodeLostMapper codeLostEntityMapper; + @Override + public List selectLost(IoCodeLostEntity ioCodeLostEntity) { + return codeLostEntityMapper.selectLost(ioCodeLostEntity); + } + @Override public IoCodeLostEntity findByCode(String code) { @@ -24,9 +32,15 @@ public class IoCodeLostServiceImpl implements IoCodeLostService { @Override public int insert(IoCodeLostEntity ioCodeLostEntity) { + return codeLostEntityMapper.insert(ioCodeLostEntity); } + @Override + public boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity) { + return codeLostEntityMapper.insertOrUpdate(ioCodeLostEntity); + } + @Override public int deleteByCode(String code) { return codeLostEntityMapper.delete(new QueryWrapper().eq("code", code)); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index a471ad12e..66fc00fa8 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -8,6 +8,7 @@ import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; @@ -39,9 +40,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { if(StrUtil.isNotEmpty(orderId)){ ew.eq("orderIdFk",orderId); } - if(chack){ - ew.isNull("nameCode"); - } +// if(chack){ +// ew.isNull("nameCode"); +// } List ioOrderDetailBizEntityList=ioOrderDetailBizDao.selectList(ew); return ioOrderDetailBizEntityList; } @@ -125,4 +126,9 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { return orderDetailBizEntities; } + @Override + public List filterListInv(FilterOrderDetailBizRequest orderDetailBizRequest) { + return ioOrderDetailBizDao.filterListInv(orderDetailBizRequest); + } + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index bace91f98..20e61781a 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -58,4 +58,16 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic } return orderDetailResultDao.filterList(orderDetailResultRequest); } + + @Override + public List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) { + if (null == orderDetailResultRequest) { + return Collections.emptyList(); + } + if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) { + PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit()); + } + return orderDetailResultDao.filterOrderList(orderDetailResultRequest); + } + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java new file mode 100644 index 000000000..c4d3535cf --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java @@ -0,0 +1,33 @@ +package com.glxp.api.service.inout.impl; + +import com.glxp.api.dao.inout.IoOrderInvoiceMapper; +import com.glxp.api.entity.inout.IoOrderInvoiceEntity; +import com.glxp.api.req.inout.IoOrderInvoiceRequest; +import com.glxp.api.service.inout.IoOrderInvoiceService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class IoOrderInvoiceServiceImpl implements IoOrderInvoiceService { + @Resource + IoOrderInvoiceMapper ioOrderInvoiceMapper; + + @Override + public boolean deleteByInvId(Integer id) { + return this.ioOrderInvoiceMapper.deleteById(id)>0; + } + + @Override + public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) { + IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); + BeanUtils.copyProperties(ioOrderInvoiceRequest,ioOrderInvoiceEntity); + return this.ioOrderInvoiceMapper.updateById(ioOrderInvoiceEntity)>0; + } + + @Override + public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) { + return ioOrderInvoiceMapper.insertInvoice(ioOrderInvoiceEntity); + } +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index e45321c6a..649fd1410 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -184,10 +184,10 @@ public class IoOrderServiceImpl implements IoOrderService { if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); //判断单据是否是预验收单据,如果是预验收单据,则删除预验收库库存 - if (basicBussinessTypeEntity.isPreIn()) { + if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { preinOrderService.deleteByOrderId(billNo); preinDetailService.deleteByOrderId(billNo); - } else if (basicBussinessTypeEntity.isAdvanceType()) { + } else if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { //是否寄售,删除寄售库存 List invProductDetailEntities = invPreProductDetailService.selectByOrderIdFk(billNo); if (CollUtil.isNotEmpty(invProductDetailEntities)) { @@ -279,7 +279,7 @@ public class IoOrderServiceImpl implements IoOrderService { BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); //预验收库存 - if (basicBussinessTypeEntity.isPreIn()) { + if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { InvPreinDetailEntity invPreinDetailEntity = preinDetailService.findByCode(billNo, code); int count = invPreinDetailEntity.getCount() - 1; @@ -292,7 +292,7 @@ public class IoOrderServiceImpl implements IoOrderService { preinDetailService.update(invPreinDetailEntity); } - } else if (basicBussinessTypeEntity.isAdvanceType()) { //寄售库存 + } else if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { //寄售库存 InvPreProductDetailEntity invProductDetailEntity = invPreProductDetailService.selectByCode(billNo, code); int count = invProductDetailEntity.getCount() - 1; if (count == 0) { @@ -378,7 +378,7 @@ public class IoOrderServiceImpl implements IoOrderService { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); //预验收撤回---直接删除预验收库存 - if (bussinessTypeEntity.isPreIn()) { + if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { invPreinOrderService.deleteByOrderId(billNo); invPreinDetailService.deleteByOrderId(billNo); } else { @@ -526,13 +526,30 @@ public class IoOrderServiceImpl implements IoOrderService { break; case Constant.ORDER_STATUS_AUDITED: filterOrderRequest.setStatuses(Arrays.asList(7)); - filterOrderRequest.setDealStatuses(Arrays.asList(3)); + filterOrderRequest.setDealStatuses(Arrays.asList(3, 4)); + break; + case Constant.ORDER_STATUS_SUP_SEARCH: + filterOrderRequest.setStatuses(Arrays.asList(5, 7)); + filterOrderRequest.setDealStatuses(Arrays.asList(2, 3)); break; default: break; } } + + @Override + public List setActions(FilterOrderRequest filterOrderRequest) { + List bussinessTypeEntities; + List actions = null; + if (filterOrderRequest.getVueType() == null) + return null; + bussinessTypeEntities = basicBussinessTypeService.findByVueType(filterOrderRequest.getVueType()); + actions = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); + filterOrderRequest.setActions(actions); + return actions; + } + @Override public List filterOrderTrace(String billNo) { IoOrderEntity order = orderDao.selectOne(new QueryWrapper().eq("billNo", billNo)); diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java index b49123e5f..2ded2a0cb 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java @@ -17,7 +17,12 @@ public interface InvPreinDetailService { List findByCode(String code); - InvPreinDetailEntity findOneByCode(String code); +// InvPreinDetailEntity findOneByCode(String code); + + + List findUseByCode(String code); + + InvPreinDetailEntity findUseOneByCode(String code); int deleteByOrderId(String orderId); @@ -29,4 +34,6 @@ public interface InvPreinDetailService { int update(InvPreinDetailEntity invPreinDetailEntity); + int updateBack(String orderId); + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvInnerOrderPrintServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvInnerOrderPrintServiceImpl.java index 95d154e0e..9161b8ef2 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvInnerOrderPrintServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvInnerOrderPrintServiceImpl.java @@ -8,6 +8,7 @@ import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.dao.inv.InvInnerOrderPrintDao; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inv.InnerOrderDetailEntity; import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity; import com.glxp.api.entity.inv.InvInnerOrderPrintEntity; @@ -23,6 +24,7 @@ import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoOrderDetailBizService; +import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.service.inv.InnerOrderDetailService; import com.glxp.api.service.inv.InvInnerOrderPdfTempService; import com.glxp.api.service.inv.InvInnerOrderPrintService; @@ -118,7 +120,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService String udiCode = "#" + udiProductEntity.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() + "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode(); - udiCode = udiCode.replaceAll("#null",""); + udiCode = udiCode.replaceAll("#null", "#"); innerOrderPrintEntity.setUdiCode(udiCode); invInnerOrderPrintDao.insert(innerOrderPrintEntity); } @@ -244,24 +246,29 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService return null; } + @Resource + IoOrderService orderService; //-----------------------------------------------------------业务单据打印-----------------------------// @Override - public Boolean addInCodeList(String orderIdFk,boolean check) { + public Boolean addInCodeList(String orderIdFk, boolean check) { //先删除数据 QueryWrapper ew = new QueryWrapper<>(); ew.eq("orderIdFk", orderIdFk); invInnerOrderPrintDao.delete(ew); - - List ioOrderDetailBizEntityList = ioOrderDetailBizService.findByOrderIdAndNameCode(orderIdFk,check); - if(ioOrderDetailBizEntityList.size()==0){ + IoOrderEntity orderEntity = orderService.findByBillNo(orderIdFk); + List ioOrderDetailBizEntityList = ioOrderDetailBizService.findByOrderIdAndNameCode(orderIdFk, check); + if (ioOrderDetailBizEntityList.size() == 0) { return false; } - for (IoOrderDetailBizEntity obj : ioOrderDetailBizEntityList) { + //todo 暂时这样子,以后要过滤 + if (check && obj.getNameCode().length() == 14) { + continue; + } InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity(); innerOrderPrintEntity.setOrderIdFk(obj.getOrderIdFk()); - innerOrderPrintEntity.setProductId(obj.getBindRlFk()+""); + innerOrderPrintEntity.setProductId(obj.getBindRlFk() + ""); innerOrderPrintEntity.setExpireDate(obj.getExpireDate()); innerOrderPrintEntity.setProductDate(obj.getProductDate()); innerOrderPrintEntity.setProductName(obj.getCoName()); @@ -282,12 +289,14 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService String udiCode = "#" + obj.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() + "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode(); - udiCode = udiCode.replaceAll("#null",""); + udiCode = udiCode.replaceAll("#null", "#"); innerOrderPrintEntity.setUdiCode(udiCode); invInnerOrderPrintDao.insert(innerOrderPrintEntity); } + orderEntity.setInCodeStatus(1);// + orderService.update(orderEntity); return true; } -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java index 5e6770a2b..633a4e662 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java @@ -3,6 +3,7 @@ package com.glxp.api.service.inv.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inv.InvPreinDetailDao; import com.glxp.api.dao.inv.InvPreinOrderDao; import com.glxp.api.entity.inv.InvPreProductDetailEntity; @@ -41,19 +42,34 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService { } @Override - public List findByCode(String code) { - return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code)); + public List findUseByCode(String code) { + return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).eq("status", ConstantStatus.INVIN_IN)); } @Override - public InvPreinDetailEntity findOneByCode(String code) { - List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).last("limit 1")); + public InvPreinDetailEntity findUseOneByCode(String code) { + List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code) + .eq("status", ConstantStatus.INVIN_IN).last("limit 1")); if (CollUtil.isNotEmpty(invPreinDetailEntities)) { return invPreinDetailEntities.get(0); } return null; } + @Override + public List findByCode(String code) { + return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code)); + } +// +// @Override +// public InvPreinDetailEntity findOneByCode(String code) { +// List invPreinDetailEntities = invPreinDetailDao.selectList(new QueryWrapper().eq("code", code).last("limit 1")); +// if (CollUtil.isNotEmpty(invPreinDetailEntities)) { +// return invPreinDetailEntities.get(0); +// } +// return null; +// } + @Override public int deleteByOrderId(String orderId) { return invPreinDetailDao.delete(new QueryWrapper().eq("orderId", orderId)); @@ -81,8 +97,18 @@ public class InvPreinDetailServiceImpl implements InvPreinDetailService { @Override public int update(InvPreinDetailEntity invPreinDetailEntity) { + + return invPreinDetailDao.updateById(invPreinDetailEntity); } + @Override + public int updateBack(String orderId) { + InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); + invPreinDetailEntity.setStatus(ConstantStatus.INVIN_BACK); + invPreinDetailDao.update(invPreinDetailEntity, new QueryWrapper().eq("orderId", orderId).ne("status", ConstantStatus.INVIN_USE)); + return 1; + } + } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6c60bf828..8c3e36de4 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms_wmd?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: Glxp@6066 hikari: diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index 655c37d57..c2300674a 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - jdbc-url: jdbc:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:mysql://192.168.0.66:3364/udi_wms_glxp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: Glxp@6066 hikari: diff --git a/src/main/resources/mybatis/mapper/auth/DeptDao.xml b/src/main/resources/mybatis/mapper/auth/DeptDao.xml index 2a9f04314..eacf395c3 100644 --- a/src/main/resources/mybatis/mapper/auth/DeptDao.xml +++ b/src/main/resources/mybatis/mapper/auth/DeptDao.xml @@ -175,14 +175,14 @@ replace INTO auth_dept (pid, code, `name`, advanceType, isDefault, - status, updateTime, remark,`level`,pcode,spUse, thirdId, thirdId1, thirdId2, thirdId3, thirdId4) + status, updateTime, remark,`level`,pcode,spUse, thirdId, thirdId1, thirdId2, thirdId3, thirdId4) values ( #{pid}, #{code}, @@ -283,4 +283,4 @@ - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/basic/BasicBusTypeChangeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBusTypeChangeDao.xml index cbd30abd4..4f5748d84 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBusTypeChangeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBusTypeChangeDao.xml @@ -2,9 +2,10 @@ - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml index 3262b6b1e..ee878512b 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml @@ -19,25 +19,30 @@ - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index 0168771f5..7c665c4e6 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -12,8 +12,9 @@ AND bu.action like concat('%', #{action}, '%') - - AND bu.advanceType = #{advanceType} + + + AND bu.inStock = #{inStock} AND bu.enable = #{enable} @@ -33,6 +34,9 @@ AND bu.secCheckEnable = #{secCheckEnable} + + AND bu.busType = #{busType} + AND bu.preIn = #{preIn} @@ -54,70 +58,76 @@ insert - ignore + ignore into basic_bussiness_type (mainAction, action, name, enable, remark, thirdSysFk, genUnit, - innerOrder, secCheckEnable, checkEnable, checkUdims, checkPdaEd, - checkPdaUn, checkPc, checkWebNew, checkSp, checkChange, secCheckUdims, - secCheckPdaEd, secCheckPdaUn, secCheckPc, secCheckWebNew, - secCheckChange, secCheckSp, corpType, supplementOrderType, - checkBalance, secCheckBalance, useDyCount, expireTip, updateTime, - defaultUnit, prefix, outToSpms, ullageFill, scanPreIn, vailInv, - entrutSpms, codeFillCheck, defaultSubInv, defaultInv, orderVisibleType, - checkCopy, secCheckCopy, originAction, advanceType, changeEnable, - spUse, preIn, supplementAll, createUser, createTime, preInBack, vailDispatch, - vailGroupBuy) + innerOrder, secCheckEnable, checkEnable, checkUdims, checkPdaEd, + checkPdaUn, checkPc, checkWebNew, checkSp, checkChange, secCheckUdims, + secCheckPdaEd, secCheckPdaUn, secCheckPc, secCheckWebNew, + secCheckChange, secCheckSp, corpType, supplementOrderType, + checkBalance, secCheckBalance, useDyCount, expireTip, updateTime, + defaultUnit, prefix, outToSpms, ullageFill, scanPreIn, vailInv, + entrutSpms, codeFillCheck, defaultSubInv, defaultInv, orderVisibleType, + checkCopy, secCheckCopy, originAction, changeEnable, + spUse, preIn, supplementAll, createUser, createTime, preInBack, vailDispatch, + vailGroupBuy, busType, inStock, actionType + , thrCheckEnable, thrCheckWebNew, thrCheckPdaUn, thrCheckPdaEd, thrCheckUdims, thrCheckPc, thrCheckSp + , thrCheckChange, thrCheckBalance, thrCheckCopy, fillCodeRel,checkVailDate,checkCertExpire) values (#{mainAction}, - #{action}, - #{name}, - #{enable}, - #{remark}, - #{thirdSysFk}, - #{genUnit}, - #{innerOrder}, - #{secCheckEnable}, - #{checkEnable}, - #{checkUdims}, - #{checkPdaEd}, - #{checkPdaUn}, - #{checkPc}, - #{checkWebNew}, - #{checkSp}, - #{checkChange}, - #{secCheckUdims}, - #{secCheckPdaEd}, - #{secCheckPdaUn}, - #{secCheckPc}, - #{secCheckWebNew}, - #{secCheckChange}, - #{secCheckSp}, - #{corpType}, - #{supplementOrderType}, - #{checkBalance}, - #{secCheckBalance}, - #{useDyCount}, - #{expireTip}, - #{updateTime}, - #{defaultUnit}, - #{prefix}, - #{outToSpms}, - #{ullageFill}, - #{scanPreIn}, - #{vailInv}, - #{entrutSpms}, - #{codeFillCheck}, - #{defaultSubInv}, - #{defaultInv}, - #{orderVisibleType}, - #{checkCopy}, - #{secCheckCopy}, - #{originAction}, - #{advanceType}, - #{changeEnable}, - #{spUse}, - #{preIn}, - #{supplementAll}, - #{createUser}, - #{createTime}, #{preInBack}, #{vailDispatch}, #{vailGroupBuy}) + #{action}, + #{name}, + #{enable}, + #{remark}, + #{thirdSysFk}, + #{genUnit}, + #{innerOrder}, + #{secCheckEnable}, + #{checkEnable}, + #{checkUdims}, + #{checkPdaEd}, + #{checkPdaUn}, + #{checkPc}, + #{checkWebNew}, + #{checkSp}, + #{checkChange}, + #{secCheckUdims}, + #{secCheckPdaEd}, + #{secCheckPdaUn}, + #{secCheckPc}, + #{secCheckWebNew}, + #{secCheckChange}, + #{secCheckSp}, + #{corpType}, + #{supplementOrderType}, + #{checkBalance}, + #{secCheckBalance}, + #{useDyCount}, + #{expireTip}, + #{updateTime}, + #{defaultUnit}, + #{prefix}, + #{outToSpms}, + #{ullageFill}, + #{scanPreIn}, + #{vailInv}, + #{entrutSpms}, + #{codeFillCheck}, + #{defaultSubInv}, + #{defaultInv}, + #{orderVisibleType}, + #{checkCopy}, + #{secCheckCopy}, + #{originAction}, + #{changeEnable}, + #{spUse}, + #{preIn}, + #{supplementAll}, + #{createUser}, + #{createTime}, #{preInBack}, #{vailDispatch}, #{vailGroupBuy}, #{busType}, #{inStock}, #{actionType} + , #{thrCheckEnable}, #{thrCheckWebNew}, #{thrCheckPdaUn}, #{thrCheckPdaEd}, #{thrCheckUdims}, + #{thrCheckPc} + , #{thrCheckSp}, #{thrCheckChange}, #{thrCheckBalance}, #{thrCheckCopy}, #{fillCodeRel} + , #{checkVailDate}, #{checkExpire}, #{checkCertExpire} + ) @@ -217,11 +231,15 @@ resultType="com.glxp.api.res.basic.BasicBussinessTypeResponse"> SELECT basic_bussiness_type.* FROM basic_bussiness_type - INNER JOIN auth_user_bustype ON basic_bussiness_type.action = auth_user_bustype.scAction + left JOIN auth_user_bustype ON basic_bussiness_type.action = auth_user_bustype.scAction AND basic_bussiness_type.name LIKE concat('%', #{name}, '%') + + + AND basic_bussiness_type.inStock = #{inStock} + AND basic_bussiness_type.action = #{action} @@ -237,6 +255,12 @@ AND auth_user_bustype.`userId` = #{userId} + + AND basic_bussiness_type.spUse = #{spUse} + + + AND busType = #{busType} + group by basic_bussiness_type.action diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index 922a15e7c..de638dc7c 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -129,7 +129,7 @@ ylqxzcrbarmc,zczbhhzbapzbh,ylqxzcrbarywmc,sydycpbs,sjcpbm,versionNumber,diType,ybbm,sptm,manufactory,measname,productType,scbssfbhph,scbssfbhxlh,scbssfbhscrq,scbssfbhsxrq,cpms,allowNoBatch,allowNoExpire, allowNoProduct,spmc,cplx,hchzsb,cpdls,price,basicPrductRemak1,basicPrductRemak2,basicPrductRemak3,basicPrductRemak4,basicPrductRemak5,basicPrductRemak6,basicPrductRemak7,basicPrductRemak8) values - ( + ( #{uuid}, #{originUuid}, #{nameCode}, @@ -279,7 +279,7 @@ cplb=#{cplb}, flbm=#{flbm}, ggxh=#{ggxh}, - qxlb !==#{qxlb !=}, + qxlb=#{qxlb}, tyshxydm=#{tyshxydm}, ylqxzcrbarmc=#{ylqxzcrbarmc}, zczbhhzbapzbh=#{zczbhhzbapzbh}, @@ -375,6 +375,63 @@ where uuid = #{uuid} + + update basic_products + + originUuid=#{originUuid}, + nameCode=#{nameCode}, + deviceRecordKey=#{deviceRecordKey}, + packRatio=#{packRatio}, + packLevel=#{packLevel}, + packUnit=#{packUnit}, + bhxjsl=#{bhxjsl}, + bhzxxsbzsl=#{bhzxxsbzsl}, + zxxsbzbhsydysl=#{zxxsbzbhsydysl}, + bhxjcpbm=#{bhxjcpbm}, + bzcj=#{bzcj}, + cpmctymc=#{cpmctymc}, + cplb=#{cplb}, + flbm=#{flbm}, + ggxh=#{ggxh}, + qxlb !==#{qxlb !=}, + tyshxydm=#{tyshxydm}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + zczbhhzbapzbh=#{zczbhhzbapzbh}, + ylqxzcrbarywmc=#{ylqxzcrbarywmc}, + sydycpbs=#{sydycpbs}, + sjcpbm=#{sjcpbm}, + versionNumber=#{versionNumber}, + diType=#{diType}, + ybbm=#{ybbm}, + sptm=#{sptm}, + manufactory=#{manufactory}, + measname=#{measname}, + productType=#{productType}, + scbssfbhph=#{scbssfbhph}, + scbssfbhxlh=#{scbssfbhxlh}, + scbssfbhscrq=#{scbssfbhscrq}, + scbssfbhsxrq=#{scbssfbhsxrq}, + cpms=#{cpms}, + allowNoBatch=#{allowNoBatch}, + allowNoExpire=#{allowNoExpire}, + allowNoProduct=#{allowNoProduct}, + spmc=#{spmc}, + cplx=#{cplx}, + hchzsb=#{hchzsb}, + cpdls=#{cpdls}, + price=#{price}, + basicPrductRemak1=#{basicPrductRemak1}, + basicPrductRemak2=#{basicPrductRemak2}, + basicPrductRemak3=#{basicPrductRemak3}, + basicPrductRemak4=#{basicPrductRemak4}, + basicPrductRemak5=#{basicPrductRemak5}, + basicPrductRemak6=#{basicPrductRemak6}, + basicPrductRemak7=#{basicPrductRemak7}, + basicPrductRemak8=#{basicPrductRemak8}, + + where id = #{id} + + select distinct ggxh from basic_products - left join basic_udirel on basic_products.uuid = basic_udirel.uuid + left join basic_udirel on basic_products.uuid = basic_udirel.uuid where basic_udirel.id = #{relId} - \ No newline at end of file + + + + UPDATE basic_products + + packRatio=#{packRatio}, + packLevel=#{packLevel}, + bhxjsl=#{bhxjsl}, + bhzxxsbzsl=#{bhzxxsbzsl}, + zxxsbzbhsydysl=#{zxxsbzbhsydysl}, + bhxjcpbm=#{bhxjcpbm}, + bzcj=#{bzcj}, + addType=#{addType}, + deviceRecordKey=#{deviceRecordKey}, + cpmctymc=#{cpmctymc}, + cplb=#{cplb}, + flbm=#{flbm}, + ggxh=#{ggxh}, + qxlb=#{qxlb}, + tyshxydm=#{tyshxydm}, + ylqxzcrbarmc=#{ylqxzcrbarmc}, + ylqxzcrbarywmc=#{ylqxzcrbarywmc}, + uuid=#{uuid}, + sjcpbm=#{sjcpbm}, + versionNumber=#{versionNumber}, + sptm=#{sptm}, + manufactory=#{manufactory}, + ybbm=#{ybbm}, + measname=#{measname}, + diType=#{diType}, + productType=#{productType}, + scbssfbhph=#{scbssfbhph}, + scbssfbhxlh=#{scbssfbhxlh}, + scbssfbhscrq=#{scbssfbhscrq}, + scbssfbhsxrq=#{scbssfbhsxrq}, + cpms=#{cpms}, + originUuid=#{originUuid}, + spmc=#{spmc}, + cpdls=#{cpdls}, + basicPrductRemak1=#{basicPrductRemak1}, + basicPrductRemak2=#{basicPrductRemak2}, + basicPrductRemak3=#{basicPrductRemak3}, + basicPrductRemak4=#{basicPrductRemak4}, + basicPrductRemak5=#{basicPrductRemak5}, + basicPrductRemak6=#{basicPrductRemak6}, + basicPrductRemak7=#{basicPrductRemak7}, + basicPrductRemak8=#{basicPrductRemak8}, + + WHERE uuid = #{uuid} + + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeLostMapper.xml b/src/main/resources/mybatis/mapper/inout/IoCodeLostMapper.xml index 71ff7cf1f..636cb4927 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeLostMapper.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeLostMapper.xml @@ -1,4 +1,28 @@ + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml index f2b41d843..444ef3fc2 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailBizDao.xml @@ -4,8 +4,8 @@ - \ No newline at end of file + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 3cd59c539..6674c3b7c 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -22,4 +22,55 @@ - \ No newline at end of file + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml b/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml new file mode 100644 index 000000000..526d0a9eb --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml @@ -0,0 +1,12 @@ + + + + + INSERT INTO io_order_invoice(orderIdFk, bindRlFk, batchNo, productDate, expireDate) + values (#{orderIdFk}, + #{bindRlFk}, + #{batchNo}, + #{productDate}, + #{expireDate}) + + diff --git a/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml index 9d50c12c7..46e5d6385 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPreinDetailDao.xml @@ -4,16 +4,51 @@