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 045aa6a0..0d66b901 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -380,7 +380,7 @@ public class IoCodeTempController extends BaseController { //批次号校验 //判断此产品是否开启允许无批次号 - UdiProductEntity udiInfoEntity = udiProductService.getAllowNoBatch(udiEntity.getUdi()); + UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi()); if (udiInfoEntity == null) { return ResultVOUtils.error(500, "耗材字典不存在此产品!"); } @@ -428,19 +428,33 @@ public class IoCodeTempController extends BaseController { //过期提醒: // SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip"); - if (bussinessTypeEntity.getCheckExpire() != 0 && !addOrderRequest.isIgnoreExpire()) { + if (bussinessTypeEntity.getCheckExpire() == 1 && !addOrderRequest.isIgnoreExpire()) { if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { String expireDate = "20" + udiEntity.getExpireDate(); long expireTime = DateUtil.parseDateExpire(expireDate); if (expireTime - System.currentTimeMillis() < 0) { - return ResultVOUtils.error(504, "当前产品已过期,无法继续添加?"); + return ResultVOUtils.error(504, "当前产品已过期,是否继续添加?"); } } } + if (bussinessTypeEntity.getCheckExpire() == 2) { + if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { + String expireDate = "20" + udiEntity.getExpireDate(); + long expireTime = DateUtil.parseDateExpire(expireDate); + if (expireTime - System.currentTimeMillis() < 0) { + return ResultVOUtils.error(509, "当前产品已过期,无法继续添加?"); + } + } + } + + + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); //近效期提醒 - SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); - long recent = Long.parseLong(recentParamConfigEntity.getParamValue()); +// SystemParamConfigEntity recentParamConfigEntity = systemParamConfigService.selectByParamKey("recent_date_tip"); + long recent = 0; + if (udiRelevanceResponse.getRecentDateTime() != null) + recent = udiRelevanceResponse.getRecentDateTime().longValue(); if (bussinessTypeEntity.getCheckVailDate() == 1 && recent > 0 && !addOrderRequest.isIgnoreRecentExpire()) { if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { String expireDate = "20" + udiEntity.getExpireDate(); @@ -457,6 +471,22 @@ public class IoCodeTempController extends BaseController { } } + if (bussinessTypeEntity.getCheckVailDate() == 2 && recent > 0) { + if (StrUtil.isNotEmpty(udiEntity.getExpireDate())) { + String expireDate = "20" + udiEntity.getExpireDate(); + long expireTime = DateUtil.parseDateExpire(expireDate); + long recentTieme = Math.abs(recent * 24 * 60 * 60 * 1000); + long resultTime = expireTime - System.currentTimeMillis(); + + if (resultTime > 0) { + long time = resultTime / (24 * 60 * 60 * 1000); + if (resultTime < recentTieme) { + return ResultVOUtils.error(505, "当前产品临近过期,距过期还剩" + time + "天,无法添加?"); + } + } + } + } + //校验预验收是否已存在 if (bussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_PREIN) { @@ -647,7 +677,7 @@ public class IoCodeTempController extends BaseController { //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); if (udiRelevanceResponses.size() >= 1) { - UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); +// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { 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 d1d32380..01440144 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -50,6 +50,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -114,7 +115,7 @@ public class IoOrderDetailBizController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.INSERT) public BaseResponse addBizProduct(@RequestBody AddBizProductReqeust addBizProductReqeust) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("vail_product_cert"); - boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; +// boolean isVailCert = systemParamConfigEntity.getParamValue().equals("1") ? true : false; AuthAdmin authAdmin = getUser(); if (addBizProductReqeust.getRelId() == null && CollUtil.isEmpty(addBizProductReqeust.getDatas())) return ResultVOUtils.error(500, "未选择产品信息"); @@ -158,8 +159,8 @@ public class IoOrderDetailBizController extends BaseController { UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(item.getRelId()); // todo 查询产品是否已经通过认证 - - if (isVailCert && udiRelevanceResponse.isNeedCert()) { + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.getCheckCertExpire() == 2 && udiRelevanceResponse.isNeedCert()) { SupProductEntity supProductEntity = supProductService.findByManufactury(udiRelevanceResponse.getCpmctymc(), udiRelevanceResponse.getManufactory(), ""); if (supProductEntity != null && (supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_PASS || supProductEntity.getAuditStatus() == ConstantStatus.AUDIT_CHANGE_PASS)) { @@ -590,17 +591,17 @@ public class IoOrderDetailBizController extends BaseController { public BaseResponse filterBizOrderList(FilterOrderDetailBizRequest orderDetailBizRequest) { List list = orderDetailBizService.filterList(orderDetailBizRequest); for (IoOrderDetailBizResponse ioOrderDetailBizResponse : list) { - String msg=""; - IoOrderInvoiceEntity ioOrderInvoiceEntity=new IoOrderInvoiceEntity(); + String msg = ""; + IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); ioOrderInvoiceEntity.setOrderIdFk(ioOrderDetailBizResponse.getOrderIdFk()); - List ioOrderInvoiceEntityList=ioOrderInvoiceService.selectOrderInvoice(ioOrderInvoiceEntity); - for(IoOrderInvoiceEntity obj:ioOrderInvoiceEntityList){ - if(StrUtil.isNotEmpty(obj.getInvoiceCode())){ - msg+=","+obj.getInvoiceCode(); + List ioOrderInvoiceEntityList = ioOrderInvoiceService.selectOrderInvoice(ioOrderInvoiceEntity); + for (IoOrderInvoiceEntity obj : ioOrderInvoiceEntityList) { + if (StrUtil.isNotEmpty(obj.getInvoiceCode())) { + msg += "," + obj.getInvoiceCode(); } } - if(msg.length()>1){ - msg=msg.substring(1); + if (msg.length() > 1) { + msg = msg.substring(1); } ioOrderDetailBizResponse.setInvoiceCodes(msg); } 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 c81ca2e1..f3fa7bd1 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,11 @@ public class BasicBusTypePreEntity { @TableField(value = "remark") private String remark; +// 创建单模式:1:送货至入库单模式;2.向上级补单模式;3.预验收/寄售转入库单模式 + + @TableField(value = "createType") + private Integer createType; + /** * 目标业务单 diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java index 285e4f43..15b29ced 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailBizEntity.java @@ -92,7 +92,7 @@ public class IoOrderDetailBizEntity { /** * 价格 */ - @TableField(value = "price") + @TableField(value = "price",fill = FieldFill.UPDATE) private BigDecimal price; /** 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 7f7cf364..badabe9b 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -112,5 +112,7 @@ public class FilterBussinessTypeRequest extends ListPageRequest { private Integer corpType; private Integer sortNum; + private Integer actionType; + } diff --git a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java index f2e1da49..9aa37fe0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -190,15 +190,27 @@ public class IoChangeInoutService { String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd")); outOrder.setBillNo(orderNo); - if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + if (bussinessChangeTypeEntity.getCreateType() == 1) {//送货至入库补单 outOrder.setCustomerId(corpName); outOrder.setFromCorp(corpName); outOrder.setFromInvCode(null); outOrder.setFromDeptCode(null); + } else if (bussinessChangeTypeEntity.getCreateType() == 3) { //寄售、预验收补单 + if (targetBustypeEntity.getActionType() == 2) { + outOrder.setCustomerId(null); + outOrder.setFromCorp(null); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode("1000001"); + outOrder.setFromInvCode(invWarehouseEntity.getCode()); + outOrder.setFromDeptCode(invWarehouseEntity.getParentId()); + } else if (targetBustypeEntity.getActionType() == 3) { + outOrder.setCustomerId(null); + outOrder.setFromCorp(null); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode("1000002"); + outOrder.setFromInvCode(invWarehouseEntity.getCode()); + outOrder.setFromDeptCode(invWarehouseEntity.getParentId()); + } } else { outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); - - InvWarehouseEntity curInv = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); InvWarehouseEntity upInv = invWarehouseService.findByInvSubByCode(curInv.getParentCode()); outOrder.setFromInvCode(upInv.getCode()); @@ -217,9 +229,7 @@ public class IoChangeInoutService { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(orderEntity.getInvCode()); outOrder.setInvCode(invWarehouseEntity.getCode()); outOrder.setDeptCode(invWarehouseEntity.getParentId()); - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); - //互填单号 orderEntity.setUllageSupNo(outOrder.getBillNo()); orderEntity.setUpdateTime(new Date()); 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 0b44e2f1..ef81f845 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -811,6 +811,8 @@ public class IoCheckInoutService { }); } + + //校验是否是不入库存单据 if (bussinessTypeEntity.isInStock()) { //生成库存 diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index eed086a0..a5be266c 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,7 +3,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_spms_wyp?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: diff --git a/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml index 76d7512f..afc2a9cc 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBusTypePreDao.xml @@ -88,7 +88,7 @@ targetBusAction, busBeforeTime, auditStatus, - busAuditStatus, + busAuditStatus,createType, values @@ -115,7 +115,7 @@ #{targetBusAction,jdbcType=VARCHAR}, #{busBeforeTime,jdbcType=TINYINT}, #{auditStatus,jdbcType=TINYINT}, - #{busAuditStatus,jdbcType=TINYINT}, + #{busAuditStatus,jdbcType=TINYINT}, #{createType,jdbcType=TINYINT}, on duplicate key update @@ -143,6 +143,7 @@ busBeforeTime = #{busBeforeTime,jdbcType=TINYINT}, auditStatus = #{auditStatus,jdbcType=TINYINT}, busAuditStatus = #{busAuditStatus,jdbcType=TINYINT}, + createType = #{createType,jdbcType=TINYINT}, diff --git a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index aeb13d77..28f26620 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -33,6 +33,9 @@ AND bu.secCheckEnable = #{secCheckEnable} + + AND bu.actionType = #{actionType} + AND bu.busType = #{busType} @@ -52,7 +55,7 @@ ]]> - order by bu.sortNum desc + order by bu.sortNum diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 0145ca0d..c474db01 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -96,6 +96,8 @@ CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'beforeTime', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'auditStatus', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'busAuditStatus', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('basic_bustype_pre', 'createType', 'tinyint', 1); + CALL Pro_Temp_ColumnWork('basic_bustype_change', 'auditStatus', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bustype_change', 'busAuditStatus', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bustype_change', 'targetBusAction', 'varchar(255)', 1);