diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index c197d1e18..e8496ecaf 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -284,7 +284,10 @@ public class Constant { public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit"; public static final String ORDER_ACTION_SUP_INOUT = "supInout"; public static final String ORDER_ACTION_SUP_PREIN = "preInOrder"; + public static final String ORDER_ACTION_WAIT_CHECK = "waitCheck"; //待校验 + public static final String ORDER_ACTION_WAIT_DEAL = "waitDeal"; //待配货/拣货 public static final String ORDER_THIRD_UPLOAD = "thirdUpload"; + public static final String ORDER_THIRD_STOCK = "stock"; //内部码 public static final String SYNC_REMARK = "syncRemark"; } diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 010108580..305c0b26c 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -317,10 +317,10 @@ public class ConstantStatus { public static final int BUS_TYPE_DD = 5; - public static final int SCAN_NO_BUS = 0; //无业业务单扫码拣货 - public static final int SCAN_BUS_PI = 1; //有业务单有三期拣货 - public static final int SCAN_NO_PI = 2; //有业务单无三期拣货 - public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) + public static final int SCAN_NO_BUS = 0; //扫码直接生成业务单 + public static final int SCAN_BUS_PI = 1; //有三期业务单配/拣货 + public static final int SCAN_NO_PI = 2; //无三期业务单配/拣货 + public static final int SCAN_ALL_PI = 3; //有三期业务单校验 //按货位出库 public static final int SPACE_OUT_NULL = 0; //无,不按货位出库 diff --git a/src/main/java/com/glxp/api/controller/auth/InvBusUserController.java b/src/main/java/com/glxp/api/controller/auth/InvBusUserController.java index ae107aba6..0d625c8bf 100644 --- a/src/main/java/com/glxp/api/controller/auth/InvBusUserController.java +++ b/src/main/java/com/glxp/api/controller/auth/InvBusUserController.java @@ -61,6 +61,26 @@ public class InvBusUserController { return ResultVOUtils.success(warehouseBussinessTypeEntities); } + @AuthRuleAnnotation("") + @GetMapping("spms/bus/user/selectEnable/filter") + public BaseResponse filterSelectInvUserEnable(FilterInvBusUserRequest filterInvBusUserRequest) { + filterInvBusUserRequest.setEnable("1"); + List responses = invBusUserService.filterInvBusUser(filterInvBusUserRequest); + List warehouseBussinessTypeEntities = + warehouseBussinessTypeService.getListEnableByCode(filterInvBusUserRequest); + + warehouseBussinessTypeEntities.forEach(warehouseBussinessTypeEntity -> + { + for (InvBusUserEntity invBusUserEntity : responses) { + if (invBusUserEntity.getScAction().equals(warehouseBussinessTypeEntity.getAction())) { + warehouseBussinessTypeEntity.setSelect(true); + break; + } + } + }); + return ResultVOUtils.success(warehouseBussinessTypeEntities); + } + //查询用户未关联单据类型 @AuthRuleAnnotation("") diff --git a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java index 641db804c..990567f34 100644 --- a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java +++ b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java @@ -188,6 +188,10 @@ public class InvWarehouseController extends BaseController { if (!"".equals(invWarehouseEntity.getParentCode())) { invWarehouseEntities1.add(invWarehouseEntity); } + //领用仓库选择手术室的话,可以领用上一级中心库的产品 + if (filterInvWarehouseRequest.getLocInvCode().equals("1002000") && invWarehouseEntity.getCode().equals("1000000")) { + invWarehouseEntities1.add(invWarehouseEntity); + } } List results = new ArrayList<>(); if (CollUtil.isNotEmpty(invWarehouseEntities1)) { 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 324bd4fac..34db52f08 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -80,7 +80,7 @@ public class BasicBussinessTypeController extends BaseController { @GetMapping("/udiwms/busType/findByInvUser") public BaseResponse findByInvUser(FilterBussinessTypeRequest bussinessTypeFilterRequest, BindingResult bindingResult) { - + bussinessTypeFilterRequest.setEnable(true); if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } @@ -167,6 +167,7 @@ public class BasicBussinessTypeController extends BaseController { BasicBussinessTypeEntity basicBussinessTypeEntity = new BasicBussinessTypeEntity(); BeanUtil.copyProperties(bussinessTypeSaveRequest, basicBussinessTypeEntity); basicBussinessTypeService.updateBussinessType(basicBussinessTypeEntity); + } else { ResultVOUtils.error(999, "参数错误"); } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java index f7f088ea2..c446abf4a 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java @@ -227,6 +227,7 @@ public class BasicProductCategoryController { list.add(udiRelevanceResponse.getId()); } filterUdiRelRequest.setExistid(list); + filterUdiRelRequest.setIsDisable(false); List udiRelevanceResponses = null; diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java index 377ebc9b6..4202dbbb1 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java @@ -277,12 +277,15 @@ public class UdiRlSupController extends BaseController { } //查询本企业有没有选择该产品有选择不能选择 CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest(); - companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getCustomerId() + ""); - List basicInstrumentMaintainRelevanceResponses = null; +// companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getCustomerId() + ""); + companyProductRelevanceRequest.setCustomerId(udiInfoExportRequest.getUnitFk() + ""); +// List basicInstrumentMaintainRelevanceResponses = null; + List basicInstrumentMaintainRelevanceResponses = null; companyProductRelevanceRequest.setDiType(1); - basicInstrumentMaintainRelevanceResponses = companyProductRelevanceService.filterUdiGp(companyProductRelevanceRequest); +// basicInstrumentMaintainRelevanceResponses = companyProductRelevanceService.filterUdiGp(companyProductRelevanceRequest); + basicInstrumentMaintainRelevanceResponses = udiRlSupService.filterUdiGp(companyProductRelevanceRequest); String rlidStr = udiInfoExportRequest.getRlIds().get(0); - for (CompanyProductRelevanceResponse obj : basicInstrumentMaintainRelevanceResponses) { + for (UdiRlSupResponse obj : basicInstrumentMaintainRelevanceResponses) { String rlid = String.valueOf(obj.getRlId()); if (rlid.equals(rlidStr)) { 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 2e7915bc1..a36b6c99b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -272,7 +272,7 @@ public class IoCodeTempController extends BaseController { checkSuccess = false; lostMsg = lostMsg + ",失效日期"; } - if (checkUdi.getAllowNoSerial()!=null && !checkUdi.getAllowNoSerial() && StrUtil.isEmpty(udiEntity.getSerialNo()) + if (checkUdi.getAllowNoSerial() != null && !checkUdi.getAllowNoSerial() && StrUtil.isEmpty(udiEntity.getSerialNo()) ) { checkSuccess = false; lostMsg = lostMsg + ",序列号"; @@ -342,6 +342,9 @@ public class IoCodeTempController extends BaseController { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode()); String code = addOrderRequest.getCode(); if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } UdiEntity udiEntity = FilterUdiUtils.getUdi(code); if (udiEntity == null) return ResultVOUtils.error(500, "无效条码!"); @@ -579,13 +582,13 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.updateById(exitLocalEntity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); @@ -629,7 +632,6 @@ public class IoCodeTempController extends BaseController { //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); 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) { @@ -694,7 +696,7 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { + if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); if (!isBillExit) { @@ -708,18 +710,6 @@ public class IoCodeTempController extends BaseController { if (baseResponse != null) { deleteEmptyBillNo(orderEntity); } - - //判断证书是否过期 -// if (codeEnttity.getRelId() != null && bussinessTypeEntity.isCheckCertExpire()) { -// -// SupProductEntity supProductEntity = supProductService.findByRelIdFk(codeEnttity.getRelId() + ""); -// if(supProductEntity!=null){ -// -// } -// if (DateUtil.) -// } - - genDetaiEntity = codeEnttity; if (baseResponse == null) { baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); @@ -757,13 +747,13 @@ public class IoCodeTempController extends BaseController { } //是否边扫边校验 - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); @@ -784,14 +774,8 @@ public class IoCodeTempController extends BaseController { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), null, codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { //按指定货位出库 @@ -809,35 +793,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); } } else { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } } - -// InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(codeTempEntity.getCode()); if (count <= 0) { return ResultVOUtils.error(500, "寄售库存数量不足!"); } else { -// if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) -// && !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { -// return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); -// } -// if (StrUtil.isNotEmpty(codeTempEntity.getOrderId())) {//非首次添加 -// if (StrUtil.isEmpty(codeTempEntity.getSerialNo())) {//该单据已有该产品 -// IoCodeTempEntity tempEntity = codeTempService.findByUnique(codeTempEntity.getOrderId(), codeTempEntity.getCode()); -// if (tempEntity != null) { -// if (count < (tempEntity.getMyCount() + 1)) { -// return ResultVOUtils.error(500, "超出寄售库存数量"); -// } -// } -// } else { -// if (count < 1) { -// return ResultVOUtils.error(500, "寄售库存数量不足"); -// } -// } -// } int exitCount = IntUtil.value(codeTempService.selectExitCount(codeTempEntity.getOrderId(), codeTempEntity.getBatchNo(), codeTempEntity.getRelId(), codeTempEntity.getSupId())); if ((codeTempEntity.getMyReCount() + exitCount) > count) { return ResultVOUtils.error(500, "寄售库存数量不足"); @@ -1106,7 +1067,6 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isEmpty(filterCodeRequest.getOrderId())) { return ResultVOUtils.error(500, "单据号不能为空!"); } - List list = codeTempService.findCodeList(filterCodeRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -1115,9 +1075,11 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + @AuthRuleAnnotation("") @PostMapping("/udiwms/addCode/updateBindSup") @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse updateBindSup(@RequestBody IoCodeTempEntity codeSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 4d3b6066d..8014d161a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; @@ -28,9 +29,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.*; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.inout.IoOrderDetailBizResponse; -import com.glxp.api.res.inout.IoOrderResponse; -import com.glxp.api.res.inout.PdaBusOrderResponse; +import com.glxp.api.res.inout.*; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.InvWarehouseService; @@ -38,12 +37,15 @@ import com.glxp.api.service.basic.BasicCorpService; import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; +import com.glxp.api.service.inout.impl.IoOrderInvoiceService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.IntUtil; import com.glxp.api.util.OrderNoTypeBean; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -95,6 +97,11 @@ public class IoOrderController extends BaseController { } if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) { orderService.setActions(filterOrderRequest); + //要是不存在要查询的单据类型就直接放回空 + if (CollUtil.isEmpty(filterOrderRequest.getActions())) { + PageInfo pageInfo = new PageInfo<>(new ArrayList<>()); + return ResultVOUtils.page(pageInfo); + } } if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { orderService.setInvoiceFiltes(filterOrderRequest); @@ -125,7 +132,12 @@ public class IoOrderController extends BaseController { orderService.setFilterStatus(filterOrderRequest); } if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) { - orderService.setActions(filterOrderRequest); + //要是不存在要查询的单据类型就直接放回空 + if (orderService.setActions(filterOrderRequest) == null) { + PageInfo pageInfo = new PageInfo<>(new ArrayList<>()); + return ResultVOUtils.page(pageInfo); + } + } if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { @@ -150,7 +162,6 @@ public class IoOrderController extends BaseController { if (ioOrderResponse.getCheckStatus() == null) { ioOrderResponse.setCheckStatus(0 + ""); } - ioOrderResponse = orderInvoiceService.findRegStausByBillNo(ioOrderResponse); } PageInfo pageInfo = new PageInfo<>(list); @@ -202,6 +213,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "请先录入产品!"); } + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); String vailKey = ""; for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { @@ -214,16 +226,20 @@ public class IoOrderController extends BaseController { if (orderDetailBizEntity.getCount() == 0) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0!"); } - if (addOrderRequest.getFromVailPi() != 2 && - StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) - && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) - && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { - return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + + if (bussinessTypeEntity.getCheckWebNew() == 1 || bussinessTypeEntity.getCheckWebNew() == 3) { + if (StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) + && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) + && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { + return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + } } + + } - ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); + ioAddInoutService.dealBusProcess(orderEntity, bussinessTypeEntity); return ResultVOUtils.success("提交成功!"); } @@ -271,7 +287,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据类型不能为空"); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); - BasicCorpEntity basicCorpEntity = new BasicCorpEntity(); + BasicCorpEntity basicCorpEntity; //要是特殊往来信息没有就创建 if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp()); @@ -308,7 +324,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success("保存成功!"); } - //等待校验-立即提交 + //待配货/待校验-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("warehouse/inout/submitOrderWeb") @@ -327,24 +343,47 @@ public class IoOrderController extends BaseController { if (CollUtil.isEmpty(orderDetailCodeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); - - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); + if (bussinessTypeEntity.getCheckWebNew() == 1) { + String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + } else { + String errMsg = checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + orderDetailBizService.deleteByOrderId(addOrderRequest.getBillNo()); + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setId(null); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); + getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); + orderDetailBizService.insert(orderDetailBizEntity); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); } - saveOrderWeb(addOrderRequest); - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderService.update(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); + + } else { return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); } @@ -359,6 +398,72 @@ public class IoOrderController extends BaseController { } + // 待校验提交,以扫码结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/codeResult/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCodeResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.checkCodeResult(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + } + + + //待校验提交,以比对结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @Transactional(rollbackFor = Exception.class) + @PostMapping("warehouse/inout/codeCheck/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List codeEntities = codeTempService.findJoinByOrderId(addOrderRequest.getBillNo()); + if (CollUtil.isEmpty(codeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + + List codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities); + for (IoCodeResponse codeTempEntity : codeTempEntities) { + if (IntUtil.value(codeTempEntity.getCheckStatus()) == 2) { + return ResultVOUtils.error(501, "存在多余条码,请先剔除后重新提交!"); + } + } + codeTempService.deleteByBillNo(addOrderRequest.getBillNo()); + for (IoCodeResponse codeResponse : codeTempEntities) { + if (IntUtil.value(codeResponse.getCheckStatus()) == 0) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtil.copyProperties(codeResponse, codeTempEntity); + codeTempService.insert(codeTempEntity); + } + } + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.checkRightResult(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + + } + public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) { if (orderEntity == null) { return ResultVOUtils.error(500, "提交失败,请先添加物资!"); @@ -374,6 +479,98 @@ public class IoOrderController extends BaseController { return null; } + @AuthRuleAnnotation("") + @GetMapping("admin/warehouse/inout/findCheckCode") + public BaseResponse findCheckCode(FilterCodeRequest filterCodeRequest) { + //校验单据是否已完成 + List codeTempEntities = codeTempService.findJoinByOrderId(filterCodeRequest.getOrderId()); + List codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(0l); + pageSimpleResponse.setList(codeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + public List getOtherCode(String billNo, List codeEntities) { + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + bizEntity.setCheckSuccess(false); + bizEntity.setScanCount(0); + } + for (IoCodeTempEntity codeTempEntity : codeEntities) { + codeTempEntity.setCheckSuccess(false); + } + List otherCodes = new ArrayList<>(); + for (IoCodeTempEntity codeEntity : codeEntities) { + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + if (checkId(bizEntity, codeEntity) == null + && checkBatchNo(bizEntity, codeEntity) == null + && checkProductDate(bizEntity, codeEntity) == null + && checkExpireDate(bizEntity, codeEntity) == null) { + int curCount = IntUtil.value(codeEntity.getReCount()) + bizEntity.getScanCount(); + if (bizEntity.getCount() < curCount) { + otherCodes.add(codeEntity); + } else { + bizEntity.setScanCount(curCount); + } + codeEntity.setCheckSuccess(true); + break; + } + } + if (!codeEntity.isCheckSuccess()) { + otherCodes.add(codeEntity); + } + } + return otherCodes; + } + + public List getCheckRusultCode(String billNo, List codeEntities) { + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(billNo); + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + List orderCheckResultResponses = ioCheckInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (CollUtil.isNotEmpty(orderCheckResultResponses)) { + for (IoOrderCheckResultResponse orderCheckResultResponse : orderCheckResultResponses) { + for (IoCodeResponse codeTempEntity : codeEntities) { + if (IntUtil.value(codeTempEntity.getRelId()) == IntUtil.value(orderCheckResultResponse.getBindRlFk()) + && (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getBBatchNo())) + || StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getSBatchNo()) + ))) { + if (orderCheckResultResponse.getCount() < 1) { + codeTempEntity.setCheckStatus(1); + } else if (orderCheckResultResponse.getCount() < orderCheckResultResponse.getScanCount()) { + codeTempEntity.setCheckStatus(2); + } + } + } + } + } + + +// List otherCodes = getOtherCode(billNo, codeEntities); +// for (IoCodeTempEntity codeTempEntity : otherCodes) { +// boolean isTure = false; +// for (IoCodeTempEntity codeEntity : codeEntities) { +// if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) { +// if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } else { +// if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } +// } +// if (!isTure) +// codeTempEntity.setCheckStatus(1); +// } + return codeEntities; + } + + //带配货-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @@ -401,6 +598,7 @@ public class IoOrderController extends BaseController { for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); orderDetailBizEntity.setId(null); getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); orderDetailBizService.insert(orderDetailBizEntity); @@ -539,6 +737,22 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } + //待校验撤回草稿 + @RepeatSubmit() + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/waitCheck/rollback") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse rollUnCheckOrder(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean result = orderService.rollUnCheckOrder(billNo); + if (result) { + return ResultVOUtils.success("撤回成功!"); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } + //手持终端获取未处理业务单据进行校验 @AuthRuleAnnotation("") @@ -834,10 +1048,116 @@ public class IoOrderController extends BaseController { @GetMapping("/udiwms/inout/order/getUserBean") public BaseResponse getUserBean() { AuthAdmin userBean = customerService.getUserBean(); + return ResultVOUtils.success(userBean); + } + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/filterInvoiceList") + public BaseResponse filterInvoiceList(FilterOrderRequest filterOrderRequest) { + + //这个不等于空表示要查询发票对应的单据 + if (filterOrderRequest.getInvoiceEncode() != null) { + //查询发票详情 + QueryWrapper ew = new QueryWrapper(); + ew.eq("invoiceEncode", filterOrderRequest.getInvoiceEncode()); + List ioOrderInvoiceEntity = orderInvoiceService.list(ew); + List orderIds = ioOrderInvoiceEntity.stream().map(IoOrderInvoiceEntity::getOrderIdFk).collect(Collectors.toList()); + filterOrderRequest.setOrderIds(orderIds); + if (CollectionUtils.isEmpty(orderIds)) { + PageInfo pageInfo = new PageInfo<>(); + return ResultVOUtils.page(pageInfo); + } + } - return ResultVOUtils.success(userBean); + + if (StrUtil.isNotBlank(filterOrderRequest.getStatusType())) { + orderService.setFilterStatus(filterOrderRequest); + } + if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) { + orderService.setActions(filterOrderRequest); + } + + if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { + orderService.setInvoiceFiltes(filterOrderRequest); + } + if (filterOrderRequest.getSourceLocalType() != null) { + if (filterOrderRequest.getSourceLocalType() == 1) { + filterOrderRequest.setSourceTypes(Arrays.asList(1, 2, 3, 4, 5)); + } else { + filterOrderRequest.setSourceTypes(Arrays.asList(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17)); + } + } + String customerId = getCustomerId(); + if (!customerId.equals("110")) { + filterOrderRequest.setFromCorp(customerId); + } + List list = orderService.getfilterOrderList(filterOrderRequest); + + for (IoOrderResponse ioOrderResponse : list) { + if (ioOrderResponse.getCheckStatus() == null) { + ioOrderResponse.setCheckStatus(0 + ""); + } + orderInvoiceService.findRegStausByBillNo(ioOrderResponse); + } + if (filterOrderRequest.getInvoiceEncode() == null) { + //查询已被登记的单据 + List ioOrderInvoiceEntity = orderInvoiceService.list(); + //已被选择的单据做标记 + if (ioOrderInvoiceEntity != null && ioOrderInvoiceEntity.size() > 0) { + for (IoOrderResponse ioOrderResponse : list) { + for (IoOrderInvoiceEntity orderInvoiceEntity : ioOrderInvoiceEntity) { + if (ioOrderResponse.getBillNo().equals(orderInvoiceEntity.getOrderIdFk())) { + ioOrderResponse.setCheckType(true); + break; + } + } + } + } + } + PageInfo pageInfo = new PageInfo<>(list); + return ResultVOUtils.page(pageInfo); + } + + + public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) { + return null; + } else { + return "产品ID不匹配"; + } + } + + public String checkBatchNo(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + return null; + } else { + return bizEntity.getCoName() + "批次号不匹配"; + } } + public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getProductDate()).equals(StrUtil.nullToEmpty(codeEntity.getProduceDate()))) { + return null; + } else { + return bizEntity.getCoName() + "生产日期不匹配"; + } + } + + public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getExpireDate()).equals(StrUtil.nullToEmpty(codeEntity.getExpireDate()))) { + return null; + } else { + return bizEntity.getCoName() + "失效日期不匹配"; + } + } + + public String checkCount(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (bizEntity.getCount() == codeEntity.getReCount()) { + return null; + } + return bizEntity.getCoName() + "数量不匹配!"; + } } 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 7116e4ece..553fd279b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -41,6 +41,7 @@ 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.inout.impl.IoOrderInvoiceService; import com.glxp.api.service.purchase.PurOrderDetailService; import com.glxp.api.service.purchase.PurOrderService; import com.glxp.api.service.purchase.SupCertService; 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 a7aea8de6..c69a5e34a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -202,8 +202,8 @@ public class IoOrderDetailResultController extends BaseController { */ @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/resultDetail/filterOrderPrint") - public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { - List ioOrderDetailResultResponseList = new ArrayList<>(); + public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List ioOrderDetailResultResponseList=new ArrayList<>(); SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailResultRequest.getTemplateId()); //打印单号标签 Map data = new HashMap<>(1); @@ -211,9 +211,9 @@ public class IoOrderDetailResultController extends BaseController { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义新的日期格式 //按选入打印 - if (filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size() > 0) { - ioOrderDetailResultResponseList = filterOrderDetailResultRequest.getList(); - } else { + if(filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size()>0){ + ioOrderDetailResultResponseList =filterOrderDetailResultRequest.getList(); + }else{ //按查询打印 FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setVueType(filterOrderDetailResultRequest.getActionType()); @@ -233,7 +233,7 @@ public class IoOrderDetailResultController extends BaseController { } } } - int i = 1; + int i=1; for (IoOrderDetailResultResponse ioOrderDetailResultResponse : ioOrderDetailResultResponseList) { //组装数据 Map ioOrderDetailResultData = new HashMap<>(); @@ -250,7 +250,7 @@ public class IoOrderDetailResultController extends BaseController { ioOrderDetailResultData.put("spec", ioOrderDetailResultResponse.getSpec() == null ? ' ' : ioOrderDetailResultResponse.getSpec()); ioOrderDetailResultData.put("price", ioOrderDetailResultResponse.getPrice() == null ? ' ' : ioOrderDetailResultResponse.getPrice()); ioOrderDetailResultData.put("count", ioOrderDetailResultResponse.getCount()); - ioOrderDetailResultData.put("reCount", ioOrderDetailResultResponse.getReCount()); + ioOrderDetailResultData.put("reCount",ioOrderDetailResultResponse.getReCount()); ioOrderDetailResultData.put("inCount", ioOrderDetailResultResponse.getInCount()); ioOrderDetailResultData.put("acceptCount", ioOrderDetailResultResponse.getAcceptCount()); ioOrderDetailResultData.put("fromCorpName", ioOrderDetailResultResponse.getFromCorpName() == null ? ' ' : ioOrderDetailResultResponse.getFromCorpName()); @@ -263,7 +263,7 @@ public class IoOrderDetailResultController extends BaseController { data.put("data", list); String param = JSON.toJSONString(data); - JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); + JasperUtils.jasperReport(request, response, param, filePath+"pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf"); return ResultVOUtils.success(); } @@ -316,5 +316,4 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(cptTraceResultResponses); } - } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderInvoiceController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderInvoiceController.java index a22eed8d1..b24eaf5c0 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderInvoiceController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderInvoiceController.java @@ -2,7 +2,10 @@ package com.glxp.api.controller.inout; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; @@ -14,15 +17,29 @@ import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.idc.service.FileService; +import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; +import com.glxp.api.req.inout.IoOrderInvoiceRequest; import com.glxp.api.req.inout.RefreshInoiceRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.res.inout.IoOrderDetailCodeResponse; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.RefreshInoiceResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; +import com.glxp.api.service.inout.impl.IoOrderInvoiceService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +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 javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; @RestController @@ -35,6 +52,15 @@ public class IoOrderInvoiceController { FileService fileService; @Resource IoOrderDetailCodeDao ioOrderDetailCodeDao; + @Resource + IoOrderInvoiceService ioOrderInvoiceService; + @Resource + IoOrderDetailCodeService orderDetailCodeService; + @Resource + CustomerService customerService; + @Resource + IoOrderDetailBizService orderDetailBizService; + @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/order/refrshInvoice") @@ -67,4 +93,148 @@ public class IoOrderInvoiceController { } + + + + + //分组查询发票列表 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/group/invoice") + public BaseResponse filterGroup(IoOrderInvoiceRequest orderInvoiceRequest) { + List orderInvoiceEntities = ioOrderInvoiceService.filterGroupBy(orderInvoiceRequest); + PageInfo pageInfo = new PageInfo<>(orderInvoiceEntities); + return ResultVOUtils.page(pageInfo); + } + + //发票对应产品信息汇总 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/invoice/product/detail") + public BaseResponse productDetail(IoOrderInvoiceRequest orderInvoiceRequest) { + if (StrUtil.isEmpty(orderInvoiceRequest.getInvoiceEncode())) + return ResultVOUtils.error(500, "发票编码不能为空!"); + List orderInvoiceEntities = ioOrderInvoiceService.filterInvoice(orderInvoiceRequest); + + //计算金额 + for (IoOrderInvoiceResponse orderInvoiceEntity : orderInvoiceEntities) { + if (orderInvoiceEntity.getPrice() != null && orderInvoiceEntity.getReCount() != 0) { + orderInvoiceEntity.setAmout(new BigDecimal(orderInvoiceEntity.getPrice()).multiply(new BigDecimal(orderInvoiceEntity.getReCount()))); + } + } + + PageInfo pageInfo = new PageInfo<>(orderInvoiceEntities); + return ResultVOUtils.page(pageInfo); + } + + //发票对应所有单据 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/invoice/order/detail") + public BaseResponse orderDetail(IoOrderInvoiceRequest orderInvoiceRequest) { + List orderInvoiceEntities = ioOrderInvoiceService.filterByInvoiceCode(orderInvoiceRequest); + for (IoOrderResponse orderInvoiceEntity : orderInvoiceEntities) { + ioOrderInvoiceService.findRegStausByBillNo(orderInvoiceEntity); + } + PageInfo pageInfo = new PageInfo<>(orderInvoiceEntities); + return ResultVOUtils.page(pageInfo); + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/inout/invoice/delete") + @Log(title = "发票删除", businessType = BusinessType.DELETE) + public BaseResponse deleteInvoice(@RequestBody DeleteRequest deleteRequest) { + if (StrUtil.isEmpty(deleteRequest.getInvoiceEncode())) + return ResultVOUtils.error(500, "发票编码不能为空"); + + boolean b = ioOrderInvoiceService.remove(new QueryWrapper().eq("invoiceEncode", deleteRequest.getInvoiceEncode())); + if (b) + return ResultVOUtils.success("删除成功!"); + else + return ResultVOUtils.error(500, "删除失败!"); + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/inout/invoice/saveInvoice") + @Log(title = "发票增加", businessType = BusinessType.INSERT) + public BaseResponse saveInvoice(@RequestBody IoOrderInvoiceRequest ioOrderInvoiceRequest) { + + List orderFkList = ioOrderInvoiceRequest.getOrderFkList(); + List ioOrderInvoiceEntityList = new ArrayList<>(); + for (String orderFk : orderFkList) { + //查询单据详情 + FilterOrderDetailCodeRequest orderDetailBizRequest = new FilterOrderDetailCodeRequest(); + orderDetailBizRequest.setOrderIdFk(orderFk); + List ioOrderDetailCodeResponses = orderDetailBizService.getfilterOrderList(orderDetailBizRequest); + for (IoOrderDetailCodeResponse ioOrderDetailCodeRespons : ioOrderDetailCodeResponses) { + IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); + BeanUtils.copyProperties(ioOrderInvoiceRequest, ioOrderInvoiceEntity); + ioOrderInvoiceEntity.setId(IdUtil.getSnowflakeNextId()); + ioOrderInvoiceEntity.setOrderIdFk(orderFk); + ioOrderInvoiceEntity.setUpdateTime(new Date()); + ioOrderInvoiceEntity.setCreateTime(new Date()); + ioOrderInvoiceEntity.setCreateUser(customerService.getUserId() + ""); + ioOrderInvoiceEntity.setUpdateUser(customerService.getUserId() + ""); + ioOrderInvoiceEntity.setBindRlFk(ioOrderDetailCodeRespons.getBindRlFk() + ""); + ioOrderInvoiceEntity.setBatchNo(ioOrderDetailCodeRespons.getBatchNo()); + ioOrderInvoiceEntity.setProductDate(ioOrderDetailCodeRespons.getProductDate()); + ioOrderInvoiceEntity.setExpireDate(ioOrderDetailCodeRespons.getExpireDate()); + ioOrderInvoiceEntityList.add(ioOrderInvoiceEntity); + } + } + + boolean b = ioOrderInvoiceService.saveBatch(ioOrderInvoiceEntityList); + if (b) + return ResultVOUtils.success("选入成功!"); + else + return ResultVOUtils.error(500, "选入失败!"); + } + + + @PostMapping("/udiwms/inout/invoice/uploadInvoice") + @Log(title = "发票管理", businessType = BusinessType.UPDATE) + public BaseResponse uploadInvoice(@RequestBody IoOrderInvoiceEntity ioOrderInvoice) { + + List ioOrderInvoiceEntityList=ioOrderInvoiceService.list(new QueryWrapper().eq("invoiceEncode",ioOrderInvoice.getInvoiceEncode())); + for (IoOrderInvoiceEntity ioOrderInvoiceEntity : ioOrderInvoiceEntityList) { + ioOrderInvoiceEntity.setInvoiceDate(ioOrderInvoice.getInvoiceDate()); + ioOrderInvoiceEntity.setPrice(ioOrderInvoice.getPrice()); + ioOrderInvoiceEntity.setLicenseUrl(ioOrderInvoice.getLicenseUrl()); + ioOrderInvoiceEntity.setRemark(ioOrderInvoice.getRemark()); + ioOrderInvoiceEntity.setMachineNo(ioOrderInvoice.getMachineNo()); + ioOrderInvoiceEntity.setInvoiceCode(ioOrderInvoice.getInvoiceCode()); + ioOrderInvoiceEntity.setUpdateTime(new Date()); + } + ioOrderInvoiceService.updateBatchById(ioOrderInvoiceEntityList); + + return ResultVOUtils.success("成功"); + + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/inout/invoice/deleteInvoiceByOrderFk") + @Log(title = "发票删除", businessType = BusinessType.DELETE) + public BaseResponse deleteInvoiceByOrderFk(@RequestBody DeleteRequest deleteRequest) { + if (StrUtil.isEmpty(deleteRequest.getInvoiceEncode())) + return ResultVOUtils.error(500, "发票编码不能为空"); + + boolean b = ioOrderInvoiceService.remove(new QueryWrapper().eq("invoiceEncode", deleteRequest.getInvoiceEncode()).eq("orderIdFk",deleteRequest.getBillNo())); + if (b) + return ResultVOUtils.success("删除成功!"); + else + return ResultVOUtils.error(500, "删除失败!"); + } + + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/inout/invoice/checkInvoiceCode") + public BaseResponse checkInvoiceCode(@RequestBody DeleteRequest deleteRequest) { + if (StrUtil.isEmpty(deleteRequest.getInvoiceEncode())) + return ResultVOUtils.error(500, "发票编码不能为空"); + + List ioOrderInvoiceEntityList = ioOrderInvoiceService.list(new QueryWrapper().eq("invoiceEncode", deleteRequest.getInvoiceEncode())); + if (CollectionUtils.isNotEmpty(ioOrderInvoiceEntityList) && ioOrderInvoiceEntityList.size()>0){ + return ResultVOUtils.error(999,"发票编码已存在!"); + } + return ResultVOUtils.success(); + + } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java index cfcfd7fda..6dd5a253e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderMutiController.java @@ -92,24 +92,31 @@ public class IoOrderMutiController { if (StrUtil.isNotBlank(udiEntity.getSerialNo())) { //包含 QueryWrapper ew = new QueryWrapper<>(); - ew.eq("udiCode", ioOrderMutiEntity.getUdiCode()); + ew.eq("nameCode", udiEntity.getUdi()); + ew.eq("batchNo", udiEntity.getBatchNo()); + ew.eq("produceDate", udiEntity.getProduceDate()); + ew.eq("expireDate", udiEntity.getExpireDate()); + ew.eq("serialNo", udiEntity.getSerialNo()); IoOrderMutiEntity ioOrderMutiEntityOne = ioOrderMutiService.getOne(ew); //查询是否被使用过 if (ioOrderMutiEntityOne != null) { + if (ioOrderMutiEntityOne.getStatus() == 1) { + return ResultVOUtils.error(999, "该产品已使用多次出库提交!"); + } if (ioOrderMutiEntityOne.getReCount() == 0) { return ResultVOUtils.error(999, "该产品库存不足!"); } return ResultVOUtils.success(ioOrderMutiEntityOne.getId()); } else { - if(StrUtil.isNotBlank(ioOrderMutiEntity.getMark())){ - QueryWrapper ew1=new QueryWrapper<>(); - ew1.eq("mark",ioOrderMutiEntity.getMark()); + if (StrUtil.isNotBlank(ioOrderMutiEntity.getMark())) { + QueryWrapper ew1 = new QueryWrapper<>(); + ew1.eq("mark", ioOrderMutiEntity.getMark()); long count = ioOrderMutiService.count(ew1); - if(count>0){ + if (count > 0) { return ResultVOUtils.error(999, "标记已存在!"); } - }else{ + } else { return ResultVOUtils.error(999, "标记不能为空!"); } @@ -180,14 +187,14 @@ public class IoOrderMutiController { } } - if(StrUtil.isNotBlank(ioOrderMutiEntity.getMark())){ - QueryWrapper ew=new QueryWrapper<>(); - ew.eq("mark",ioOrderMutiEntity.getMark()); + if (StrUtil.isNotBlank(ioOrderMutiEntity.getMark())) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("mark", ioOrderMutiEntity.getMark()); long count = ioOrderMutiService.count(ew); - if(count>0){ + if (count > 0) { return ResultVOUtils.error(999, "标记已存在!"); } - }else{ + } else { return ResultVOUtils.error(999, "标记不能为空!"); } @@ -220,14 +227,14 @@ public class IoOrderMutiController { @PostMapping("/udiwms/inout/order/muti/updateOrderMuti") public BaseResponse updateOrderMuti(@RequestBody IoOrderMutiEntity ioOrderMutiEntity) { - if(StrUtil.isNotBlank(ioOrderMutiEntity.getMark())){ - QueryWrapper ew1=new QueryWrapper<>(); - ew1.eq("mark",ioOrderMutiEntity.getMark()); - IoOrderMutiEntity ioOrderMutiEntityOne= ioOrderMutiService.getOne(ew1); - if(!ioOrderMutiEntityOne.getId().equals(ioOrderMutiEntity.getId())){ + if (StrUtil.isNotBlank(ioOrderMutiEntity.getMark())) { + QueryWrapper ew1 = new QueryWrapper<>(); + ew1.eq("mark", ioOrderMutiEntity.getMark()); + IoOrderMutiEntity ioOrderMutiEntityOne = ioOrderMutiService.getOne(ew1); + if (!ioOrderMutiEntityOne.getId().equals(ioOrderMutiEntity.getId())) { return ResultVOUtils.error(999, "标记已存在!"); } - }else{ + } else { return ResultVOUtils.error(999, "标记不能为空!"); } @@ -252,7 +259,7 @@ public class IoOrderMutiController { if (ioOrderMutiSetEntity == null) { return ResultVOUtils.error(999, "请设置补单条件!"); } - orderNo=ioOrderMutiService.insterOrder(ioOrderMutiEntity,ioOrderMutiSetEntity); + orderNo = ioOrderMutiService.insterOrder(ioOrderMutiEntity, ioOrderMutiSetEntity); } @@ -329,8 +336,8 @@ public class IoOrderMutiController { public BaseResponse addMutiDetail(@RequestBody IoOrderMutiUseEntity ioOrderMutiUseEntity) { - if (ioOrderMutiUseEntity.getCheckType() !=null && ioOrderMutiUseEntity.getCheckType() == 1) { - IoOrderMutiRequest ioOrderMutiRequest=new IoOrderMutiRequest(); + if (ioOrderMutiUseEntity.getCheckType() != null && ioOrderMutiUseEntity.getCheckType() == 1) { + IoOrderMutiRequest ioOrderMutiRequest = new IoOrderMutiRequest(); ioOrderMutiRequest.setStatus(0); ioOrderMutiRequest.setUdiCode(ioOrderMutiUseEntity.getUdiCode()); ioOrderMutiRequest.setMark(ioOrderMutiUseEntity.getMark()); @@ -378,8 +385,8 @@ public class IoOrderMutiController { ioOrderMutiUseService.save(ioOrderMutiUseEntity); //更新主表数量 - ioOrderMutiEntity.setUseCount(ioOrderMutiEntity.getUseCount()+1); - ioOrderMutiEntity.setReCount(ioOrderMutiEntity.getReCount()-1); + ioOrderMutiEntity.setUseCount(ioOrderMutiEntity.getUseCount() + 1); + ioOrderMutiEntity.setReCount(ioOrderMutiEntity.getReCount() - 1); ioOrderMutiEntity.setUpdateTime(new Date()); ioOrderMutiService.updateById(ioOrderMutiEntity); return ResultVOUtils.success(); 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 aa9f7aa76..abae6753d 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -3,7 +3,6 @@ package com.glxp.api.controller.inout; import cn.hutool.core.bean.BeanUtil; 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.annotation.Log; import com.glxp.api.common.enums.ResultEnum; @@ -16,15 +15,14 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.EntrustReceEntity; -import com.glxp.api.entity.inout.*; -import com.glxp.api.entity.system.SystemParamConfigEntity; +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.http.sync.SpGetHttpClient; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.ReviewFinishRequest; import com.glxp.api.req.inout.ReviewSpmsRequest; import com.glxp.api.req.inout.UpdateExportStatusRequest; -import com.glxp.api.req.sync.SpsSyncDataRequest; -import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.AcceptOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.res.inout.IoOrderResponse; @@ -47,7 +45,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.awt.*; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -474,7 +471,8 @@ public class IoOrderReviewController extends BaseController { String billNo = reviewSpmsRequest.getBillNo(); if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) { - return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + // return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + return ResultVOUtils.error(999,"请输入单据号!"); } AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); Long userId = getUserId(); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java index bd062819f..cd992752f 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java @@ -76,6 +76,7 @@ public class ThirdUploadSetController { thrOrderUploadBustypesEntity.setCreateTime(new Date()); thrOrderUploadBustypesEntity.setId(null); thrOrderUploadBustypesEntity.setOrderSource(Arrays.asList("2")); + thrOrderUploadBustypesEntity.setId(null); thrOrderUploadBustypesService.save(thrOrderUploadBustypesEntity); } } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrInvProductsController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrInvProductsController.java index 66e759c3a..29bd75698 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrInvProductsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrInvProductsController.java @@ -184,7 +184,7 @@ public class ThrInvProductsController { @GetMapping("/udiwms/inv/getInvProducts") public BaseResponse getInvProducts(ThrOnhandRequest thrOnhandRequest) { ThrSystemEntity thrSystemEntity = thrSystemService.selectByThirdId(thrOnhandRequest.getThirdSys()); - String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/inv/getEnvProduct"; + String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/inv/getInvProduct"; try { String response = httpOkClient.uCloudPost(url, thrOnhandRequest, thrSystemEntity); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrSystemController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrSystemController.java index 3966b9350..89d11f1ea 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrSystemController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrSystemController.java @@ -103,6 +103,7 @@ public class ThrSystemController { ThrSystemEntity thrSystemEntity = thrSystemService.selectByThirdId(filterBasicThirdSysDetailRequest.getThirdSysFk()); return ResultVOUtils.success(thrSystemEntity); } + //接口设置编辑 @PostMapping("/udiwms/basic/thirdsys/update") public BaseResponse save(@RequestBody @Valid ThrSystemEntity thrSystemEntity, @@ -235,7 +236,6 @@ public class ThrSystemController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List basicThirdSysEntities = thrSystemBusApiService.filterSysBusApi(filterBasicThirdSysDetailRequest); - PageInfo pageInfo; pageInfo = new PageInfo<>(basicThirdSysEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); diff --git a/src/main/java/com/glxp/api/dao/auth/WarehouseBussinessTypeDao.java b/src/main/java/com/glxp/api/dao/auth/WarehouseBussinessTypeDao.java index c01297e5b..e33347276 100644 --- a/src/main/java/com/glxp/api/dao/auth/WarehouseBussinessTypeDao.java +++ b/src/main/java/com/glxp/api/dao/auth/WarehouseBussinessTypeDao.java @@ -3,6 +3,7 @@ package com.glxp.api.dao.auth; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.req.auth.FilterInvBusTypeRequest; +import com.glxp.api.req.auth.FilterInvBusUserRequest; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -32,6 +33,8 @@ public interface WarehouseBussinessTypeDao extends BaseMapperPlus selectListByCode(@Param("code") String code); + List selectListByCodeEnable(FilterInvBusUserRequest filterInvBusUserRequest); + List filterList(FilterInvBusTypeRequest filterInvBusTypeRequest); boolean deleteByCode(@Param("code") String code); diff --git a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java index 6580c5dda..3a81a024a 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -13,6 +13,7 @@ import java.util.List; public interface UdiRelevanceDao extends BaseMapperPlus { List filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest); + String selectPackLevel(@Param("nameCode") String nameCode); List filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest); diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java index 275fb88e4..f4ad75bc1 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java @@ -24,4 +24,7 @@ public interface IoCodeDao extends BaseMapperPlus filterList(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java index 95f7a691a..0c34c5c9b 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java @@ -3,6 +3,7 @@ package com.glxp.api.dao.inout; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import java.util.List; @@ -18,4 +19,6 @@ public interface IoCodeTempDao extends BaseMapperPlus selectCodeList(FilterCodeRequest filterCodeRequest); Integer selectExitCount(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java index 7f0314953..359c857a9 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderInvoiceMapper.java @@ -4,6 +4,8 @@ package com.glxp.api.dao.inout; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.res.inout.IoOrderResponse; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -15,4 +17,10 @@ public interface IoOrderInvoiceMapper extends BaseMapperPlus selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceEntity); + + List filterGroupBy(IoOrderInvoiceRequest orderInvoiceRequest); + + List filterInvoice(IoOrderInvoiceRequest orderInvoiceRequest); + + List filterByInvoiceCode(IoOrderInvoiceRequest orderInvoiceRequest); } diff --git a/src/main/java/com/glxp/api/dao/inv/InvInnerOrderPrintDao.java b/src/main/java/com/glxp/api/dao/inv/InvInnerOrderPrintDao.java index e4f317735..d72b3d591 100644 --- a/src/main/java/com/glxp/api/dao/inv/InvInnerOrderPrintDao.java +++ b/src/main/java/com/glxp/api/dao/inv/InvInnerOrderPrintDao.java @@ -12,4 +12,5 @@ public interface InvInnerOrderPrintDao extends BaseMapper filterOrderPrintList(FilterinnerOrderprintRequest filterinnerOrderprintRequest); List filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest); + } 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 e0cd68eec..69276f251 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -107,7 +107,13 @@ public class BasicBussinessTypeEntity { /** * web前端页面新增单据 + * 0.扫码直接生成业务单 + * 1.有三期业务单配/拣货 + * 2.无三期业务单配/拣货 + * 3.有三期业务单校验 */ + + @TableField(value = "checkWebNew") private int checkWebNew; diff --git a/src/main/java/com/glxp/api/entity/basic/UdiEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiEntity.java index af3d42ecb..6c7fd40e5 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiEntity.java @@ -1,5 +1,7 @@ package com.glxp.api.entity.basic; +import cn.hutool.core.util.StrUtil; + /** * @author 彭于晏 * @date 2020/9/22. diff --git a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java index e54995426..2e489e972 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiRelevanceEntity.java @@ -171,6 +171,5 @@ public class UdiRelevanceEntity { @TableField(value = "certIdFk") private String certIdFk; - @TableField(value = "zdcfsycs") - private Integer zdcfsycs ; -} \ No newline at end of file + +} diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index 43bebc09b..9a9c25583 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -149,8 +149,14 @@ public class IoCodeTempEntity { @TableField(exist = false) private int status; //条码校验状态 @TableField(exist = false) + private int checkStatus; //1:多余条码;2.同一产品条码超出 + @TableField(exist = false) private String mySupId; //更新供应商 + + @TableField(exist = false) + private boolean checkSuccess; //临时字段校验是否成功 + public int getMyCount() { if (count == null) return 0; 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 9053fd966..555c6bfe8 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -265,5 +265,11 @@ public class IoOrderEntity { @TableField(value = "preCurSpaceCode") private String preCurSpaceCode; + /** + * 出库病人信息 + */ + @TableField(value = "outSickInfo") + private String outSickInfo; + } diff --git a/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java index cd135c6a3..ab6cb839d 100644 --- a/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InnerOrderDetailEntity.java @@ -9,6 +9,7 @@ public class InnerOrderDetailEntity { private String orderIdFk; private String productId; private String productName; + private String nameCode; private Integer count; private String productDate; private String expireDate; diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java index 75f6709f9..f61ee0144 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java @@ -18,7 +18,7 @@ import lombok.Data; @TableName(value = "thr_order_upload_bustypes", autoResultMap = true) public class ThrOrderUploadBustypesEntity implements Serializable { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField(value = "`action`") diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrSystemBusApiEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrSystemBusApiEntity.java index 17d57f990..7c59a6ec0 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrSystemBusApiEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrSystemBusApiEntity.java @@ -30,6 +30,9 @@ public class ThrSystemBusApiEntity { @TableField(value = "url") private String url; + /** + * 1:业务单据查询;2:业务单据提交 + */ @TableField(value = "`type`") private Integer type; diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrSystemDetailEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrSystemDetailEntity.java index a6be1535c..42d382f46 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrSystemDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrSystemDetailEntity.java @@ -25,6 +25,7 @@ public class ThrSystemDetailEntity { * 请求时间,单位:分钟 */ private Integer time; + private Integer dlLastTime; public String getValue() { if (value == null) diff --git a/src/main/java/com/glxp/api/req/auth/FilterInvBusUserRequest.java b/src/main/java/com/glxp/api/req/auth/FilterInvBusUserRequest.java index 3dd86ca04..827fe13fa 100644 --- a/src/main/java/com/glxp/api/req/auth/FilterInvBusUserRequest.java +++ b/src/main/java/com/glxp/api/req/auth/FilterInvBusUserRequest.java @@ -12,6 +12,8 @@ public class FilterInvBusUserRequest extends ListPageRequest { private String userId; private String subInvCode; private String scAction; + private String enable; + private String code; private List selectedCodes; } diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java index 27e3f3c6c..2b28d185c 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -30,6 +30,7 @@ public class FilterUdiRelRequest extends ListPageRequest { private String lastUpdateTime; private String zczbhhzbapzbh; + private String packLevel; private Integer diType; 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 b1b3c9e94..53633f2d7 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -136,7 +136,7 @@ public class FilterOrderRequest extends ListPageRequest { * 校验异常:checkedError * 已校验:checkSuccess * 已审核:audited - * * 预验收入库单 preInOrder + * * 预验收入库单 preInOrder */ private String statusType; @@ -191,5 +191,10 @@ public class FilterOrderRequest extends ListPageRequest { private String orderBy; private String uploadKey; + private String invoiceEncode; + //联合备注字段查询 + private String unionRemark; + + private String remark; } diff --git a/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java index e8eaaa0bf..59fb6ca82 100644 --- a/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java +++ b/src/main/java/com/glxp/api/req/inout/IoOrderInvoiceRequest.java @@ -1,8 +1,10 @@ package com.glxp.api.req.inout; +import com.glxp.api.util.page.ListPageRequest; import lombok.Data; import java.util.Date; +import java.util.List; /** * @author : zhangsan @@ -10,7 +12,7 @@ import java.util.Date; * @modyified By : */ @Data -public class IoOrderInvoiceRequest { +public class IoOrderInvoiceRequest extends ListPageRequest { private Long id; @@ -62,6 +64,18 @@ public class IoOrderInvoiceRequest { private Long bizIdFk; + List orderFkList; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + public static final String COL_ID = "id"; public static final String COL_ORDERIDFK = "orderIdFk"; diff --git a/src/main/java/com/glxp/api/req/system/DeleteRequest.java b/src/main/java/com/glxp/api/req/system/DeleteRequest.java index ddad45de9..8e98c96ff 100644 --- a/src/main/java/com/glxp/api/req/system/DeleteRequest.java +++ b/src/main/java/com/glxp/api/req/system/DeleteRequest.java @@ -12,4 +12,5 @@ public class DeleteRequest { String billNo; List billNos; Integer dlType; //1:同步任务,2:下载记录 + String invoiceEncode; } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java index 6472ee4a8..1bdafe793 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java @@ -148,4 +148,11 @@ public class IoCodeResponse { private String ylqxzcrbarmc; private String zczbhhzbapzbh; private String manufactory; + + private Integer checkStatus; + + + private String mySupId; //更新供应商 + + } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java index 5ab80ef06..ba613709e 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java @@ -123,4 +123,28 @@ public class IoCodeTempResponse { private String remark; + /** + * 部门名称 + */ + private String deptName; + + /** + * 仓库名称 + */ + private String invName; + + /** + * 货位名称 + */ + private String warehouseName; + + private String productName; + private String ggxh; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String manufactory; + + private Integer checkStatus; + + } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java index 63a44894d..da748cd61 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderInvoiceResponse.java @@ -3,6 +3,7 @@ package com.glxp.api.res.inout; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -85,7 +86,14 @@ public class IoOrderInvoiceResponse { private String licenseUrl; private Long bizIdFk; - + private String coName; + private String spec; + private String measname; + private String manufacturer; + private String certCode; + private int reCount; + private int count; + private BigDecimal amout; public static final String COL_ID = "id"; 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 05b1f1363..f2771f3b7 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderResponse.java @@ -237,7 +237,7 @@ public class IoOrderResponse { */ private String errMsg; - + private boolean checkType; private Integer busType; //1:正常;2:送货;3.到货 private int invoiceStatus;//发票登记状态0:未登记,1:未全部登记;2:已全部登记 diff --git a/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java b/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java index 6c02066d2..1ff8b90ed 100644 --- a/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java +++ b/src/main/java/com/glxp/api/res/inv/innerOrderDetailResponse.java @@ -45,6 +45,7 @@ public class innerOrderDetailResponse { private int acceptCount; private String measname; private String supId; + private String nameCode; private String supName; } diff --git a/src/main/java/com/glxp/api/service/auth/WarehouseBussinessTypeService.java b/src/main/java/com/glxp/api/service/auth/WarehouseBussinessTypeService.java index 0ee6e363b..475d9d26f 100644 --- a/src/main/java/com/glxp/api/service/auth/WarehouseBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/auth/WarehouseBussinessTypeService.java @@ -4,6 +4,7 @@ package com.glxp.api.service.auth; import com.baomidou.mybatisplus.extension.service.IService; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.req.auth.FilterInvBusTypeRequest; +import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.req.auth.FilterInvLinkDataRequest; import com.glxp.api.res.basic.BasicBussinessTypeResponse; @@ -20,6 +21,8 @@ public interface WarehouseBussinessTypeService extends IService getListByCode(String code); + List getListEnableByCode(FilterInvBusUserRequest filterInvBusUserRequest); + List filterList(FilterInvBusTypeRequest filterInvBusTypeRequest); /** diff --git a/src/main/java/com/glxp/api/service/auth/impl/WarehouseBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/WarehouseBussinessTypeServiceImpl.java index 3a7ad4681..edd295bba 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/WarehouseBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/WarehouseBussinessTypeServiceImpl.java @@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.auth.WarehouseBussinessTypeDao; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.req.auth.FilterInvBusTypeRequest; +import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.req.auth.FilterInvLinkDataRequest; import com.glxp.api.res.basic.BasicBussinessTypeResponse; import com.glxp.api.service.auth.WarehouseBussinessTypeService; @@ -41,6 +42,15 @@ public class WarehouseBussinessTypeServiceImpl extends ServiceImpl getListEnableByCode(FilterInvBusUserRequest filterInvBusUserRequest) { + List warehouseBussinessTypeEntities = warehouseBussinessTypeDao.selectListByCodeEnable(filterInvBusUserRequest); + if (CollUtil.isEmpty(warehouseBussinessTypeEntities)) { + return Collections.emptyList(); + } + return warehouseBussinessTypeEntities; + } + @Override public List filterList(FilterInvBusTypeRequest filterInvBusTypeRequest) { if (filterInvBusTypeRequest == null) { diff --git a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java index 5238a4b8a..50516d533 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiContrastService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiContrastService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.basic; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.entity.basic.UdiProductEntity; @@ -207,13 +208,27 @@ public class UdiContrastService { } public void insertUdiInfos(List udiInfoEntities) { + Boolean falg=false; + String uuid=""; if (CollUtil.isNotEmpty(udiInfoEntities)) { UdiProductEntity udiProductEntity = udiProductService.findByUuid(udiInfoEntities.get(0).getUuid()); if (udiProductEntity == null) { for (UdiProductEntity udiInfoEntity : udiInfoEntities) { udiInfoEntity.setId(IdUtil.getSnowflakeNextId()); + if(udiInfoEntity.getZxxsbzbhsydysl()>0){ + uuid=udiInfoEntity.getUuid(); + falg=true; + } } udiProductService.insertUdiInfos(UdiInfoUtil.initUdiInfoEntitys(udiInfoEntities)); + //判断产品zxxsbzbhsydysl大于0就启动使用单元 + if(falg){ + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("uuid",uuid); + UdiRelevanceEntity udiRelevanceEntity=new UdiRelevanceEntity(); + udiRelevanceEntity.setIsUseDy(true); + udiRelevanceService.update(udiRelevanceEntity,ew); + } } } } 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 9e3a6b811..6e3ce6ca0 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 @@ -265,6 +265,51 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() + .eq("enable", true).and( + webNew -> webNew.eq("checkWebNew", 3) + .or().eq("checkPdaUn", 3) + .or().eq("checkPdaEd", 3) + .or().eq("checkUdims", 3) + .or().eq("checkPc", 3) + .or().eq("checkSp", 3) + .or().eq("checkChange", 3) + .or().eq("checkBalance", 3) + .or().eq("checkCopy", 3) + ) + ); + break; + case Constant.ORDER_ACTION_WAIT_DEAL: //待配货/拣货页面 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).and( + webNew -> webNew.in("checkWebNew", 1, 2) + .or().in("checkPdaUn", 1, 2) + .or().in("checkPdaEd", 1, 2) + .or().in("checkUdims", 1, 2) + .or().in("checkPc", 1, 2) + .or().in("checkSp", 1, 2) + .or().in("checkChange", 1, 2) + .or().in("checkBalance", 1, 2) + .or().in("checkCopy", 1, 2) + ) + ); + break; + case Constant.ORDER_THIRD_STOCK: //内部码 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).and( + webNew -> webNew.in("checkWebNew", 1, 2, 3) + .or().in("checkPdaUn", 1, 2, 3) + .or().in("checkPdaEd", 1, 2, 3) + .or().in("checkUdims", 1, 2, 3) + .or().in("checkPc", 1, 2, 3) + .or().in("checkSp", 1, 2, 3) + .or().in("checkChange", 1, 2, 3) + .or().in("checkBalance", 1, 2, 3) + .or().in("checkCopy", 1, 2, 3) + ) + ); + break; case Constant.ORDER_THIRD_UPLOAD: List thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list(); 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 31a7d4d34..5d86fcc87 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -172,7 +172,7 @@ public class IoAddInoutService { if ((warehouseEntity.getRelId() == null)) { orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR); orderEntity.setUpdateTime(new Date()); - orderEntity.setErrMsg("udi码:" + warehouseEntity.getCode() + "上传时对照数据丢失,请选择对!"); + orderEntity.setErrMsg("udi码:" + warehouseEntity.getCode() + "上传时对照数据丢失!"); orderService.update(orderEntity); return; } @@ -239,7 +239,8 @@ public class IoAddInoutService { //新增业务单据处理 - public void dealBusProcess(IoOrderEntity orderEntity, Integer fromVailPi) { + public void dealBusProcess(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { + orderEntity.setErrMsg("正在处理!"); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); @@ -294,12 +295,7 @@ public class IoAddInoutService { orderService.update(orderEntity); return; } - - if (fromVailPi != null && fromVailPi == 2) - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_ALLOCATE); - else - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); - + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); 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 0b53b51f4..940cad261 100644 --- a/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoChangeInoutService.java @@ -15,6 +15,7 @@ import com.glxp.api.entity.inv.InvProductDetailEntity; 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.inout.impl.IoOrderInvoiceService; import com.glxp.api.service.inv.InvProductDetailService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.CustomUtil; 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 69bb21bc2..c3051da9e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -182,6 +182,65 @@ public class IoCheckInoutService { } } + //待校验 以扫码结果为准 + public void checkCodeResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_FAIL); + orderEntity.setUpdateTime(new Date()); + orderEntity.setErrMsg("校验失败,扫码详情为空!"); + orderService.update(orderEntity); + return; + } + orderDetailCodeEntities.forEach(orderDetailCodeEntity -> + { + //生成单据结果 + IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity); + orderDetailResultEntity.setCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setReCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setId(null); + orderDetailResultService.insert(orderDetailResultEntity); + + }); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + + + public void checkRightResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + orderDetailCodeService.deleteByOrderId(orderId); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + addInoutService.genOrderDetailCode(orderEntity, codeTempEntity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + @Resource IoCodeLostService codeLostService; diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoCodeService.java index c04f895b5..54ee8dd87 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeService.java @@ -15,6 +15,8 @@ public interface IoCodeService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + int updateById(IoCodeEntity codeEnttity); int deleteById(Integer id); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index f39684883..c77a3386e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.util.page.TableDataInfo; @@ -27,6 +28,8 @@ public interface IoCodeTempService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + TableDataInfo findByOrderId(FilterCodeRequest filterCodeRequest); int deleteByBillNo(String orderId); 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 cc5289f6a..9edc7ab2b 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -1,14 +1,17 @@ package com.glxp.api.service.inout; import cn.hutool.core.util.StrUtil; +import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; 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.IoOrderDetailResultEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.inv.*; import com.glxp.api.service.basic.IBasicBusTypePreService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inv.*; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -42,7 +45,8 @@ public class IoGenInvService { InvUserProductService invUserProductService; @Resource InvUserProductDetailService invUserProductDetailService; - + @Resource + IBasicBussinessTypeService basicBussinessTypeService; @Resource IoChangeInoutService ioChangeInoutService; @@ -54,6 +58,13 @@ public class IoGenInvService { List orderDetailResultEntities = orderDetailResultService.findByOrderId(orderId); List codeEnttities = codeService.findByOrderId(orderId); + //补齐单据信息 + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { + orderEntity.setOutSickInfo(orderEntity.getFromCorp()); + orderService.update(orderEntity); + } + //生成库存产品表 for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { InvProductEntity invProductEntity = invProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode()); 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 9f6affdf1..8f1a66099 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -26,5 +26,6 @@ public interface IoOrderDetailResultService { List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); + List cptTrace(CptTraceRequest cptTraceRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java b/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java deleted file mode 100644 index 2473e6e5e..000000000 --- a/src/main/java/com/glxp/api/service/inout/IoOrderInvoiceService.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.glxp.api.service.inout; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.glxp.api.entity.inout.IoOrderInvoiceEntity; -import com.glxp.api.req.inout.IoOrderInvoiceRequest; -import com.glxp.api.res.inout.IoOrderResponse; - -import java.util.List; - -public interface IoOrderInvoiceService extends IService { - - - List findByBillNo(String billNo); - - boolean deleteByInvId(String id); - - boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest); - - boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity); - - List selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest); - - IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse); - -} 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 3ae34d963..7ba9551c4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -46,6 +46,9 @@ public interface IoOrderService { int deleteInvCode(String billNo, String code); + + boolean rollUnCheckOrder(String billNo); + boolean rollbackOrder(String billNo); boolean rollbackUnReOrder(String billNo); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java index 023b4e6f4..c5cca9a07 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java @@ -52,6 +52,15 @@ public class IoCodeServiceImpl implements IoCodeService { return ioCodeDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeEntity codeEnttity) { return ioCodeDao.updateById(codeEnttity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index c9a743ae5..5a787ae76 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; @@ -7,6 +8,7 @@ import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.util.BeanCopyUtils; @@ -51,6 +53,15 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeTempDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeTempEntity codeEnttity) { return ioCodeTempDao.updateById(codeEnttity); 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 e1077961a..c0951d1c6 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 @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inout.IoOrderDetailBizDao; +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; @@ -15,6 +16,7 @@ import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; @@ -140,6 +142,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { } return ioOrderDetailBizDao.getfilterOrderList(OrderDetailCodeRequest); } + @Override public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) { QueryWrapper ew = new QueryWrapper<>(); @@ -161,12 +164,15 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { IoCheckInoutService checkInoutService; @Resource IoOrderService orderService; + @Resource + IBasicBussinessTypeService bussinessTypeService; @Override public List checkOrderList(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailBizEntities = findByOrderId(orderId); - if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_ALLOCATE) { + BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.getCheckWebNew() == 2) { checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); } else { List codeEntities = orderDetailCodeService.findByOrderId(orderId); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceService.java similarity index 63% rename from src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java rename to src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceService.java index a9b0e91c5..e0b28e805 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderInvoiceService.java @@ -1,17 +1,17 @@ package com.glxp.api.service.inout.impl; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoOrderDetailCodeDao; import com.glxp.api.dao.inout.IoOrderInvoiceMapper; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderInvoiceEntity; import com.glxp.api.req.inout.IoOrderInvoiceRequest; +import com.glxp.api.res.inout.IoOrderInvoiceResponse; import com.glxp.api.res.inout.IoOrderResponse; -import com.glxp.api.service.inout.IoOrderInvoiceService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,24 +23,22 @@ import java.util.List; @Service @Transactional(rollbackFor = Exception.class) -public class IoOrderInvoiceServiceImpl extends ServiceImpl implements IoOrderInvoiceService { +public class IoOrderInvoiceService extends ServiceImpl { @Resource IoOrderInvoiceMapper ioOrderInvoiceMapper; @Resource IoOrderDetailCodeDao orderDetailCodeDao; - @Override + public List findByBillNo(String orderIdFk) { return ioOrderInvoiceMapper.selectList(new QueryWrapper().eq("orderIdFk", orderIdFk)); } - @Override public boolean deleteByInvId(String id) { return this.ioOrderInvoiceMapper.deleteById(id) > 0; } - @Override public boolean updateByInvId(IoOrderInvoiceRequest ioOrderInvoiceRequest) { IoOrderInvoiceEntity ioOrderInvoiceEntity = new IoOrderInvoiceEntity(); BeanUtils.copyProperties(ioOrderInvoiceRequest, ioOrderInvoiceEntity); @@ -48,19 +46,28 @@ public class IoOrderInvoiceServiceImpl extends ServiceImpl 0; } - @Override public boolean insertInvoice(IoOrderInvoiceEntity ioOrderInvoiceEntity) { - if (ioOrderInvoiceEntity.getId() == null) - ioOrderInvoiceEntity.setId(IdUtil.getSnowflakeNextId()); return ioOrderInvoiceMapper.insert(ioOrderInvoiceEntity) > 0; } - @Override public List selectOrderInvoice(IoOrderInvoiceRequest ioOrderInvoiceRequest) { return ioOrderInvoiceMapper.selectOrderInvoice(ioOrderInvoiceRequest); } - @Override + public boolean updateRegStatus(IoOrderDetailCodeEntity orderDetailCodeEntity) { + IoOrderInvoiceRequest orderInvoiceRequest = new IoOrderInvoiceRequest(); + orderInvoiceRequest.setBatchNo(orderDetailCodeEntity.getBatchNo()); + orderInvoiceRequest.setBindRlFk(orderDetailCodeEntity.getBindRlFk() + ""); + List orderInvoiceEntities = selectOrderInvoice(orderInvoiceRequest); + if (CollUtil.isNotEmpty(orderInvoiceEntities)) { + orderDetailCodeEntity.setRegStatus(true); + } else { + orderDetailCodeEntity.setRegStatus(false); + } + orderDetailCodeDao.updateById(orderDetailCodeEntity); + return true; + } + public IoOrderResponse findRegStausByBillNo(IoOrderResponse orderResponse) { List orderInvoiceEntities = ioOrderInvoiceMapper.selectList(new QueryWrapper().eq("orderIdFk", orderResponse.getBillNo())); List orderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderResponse.getBillNo())); @@ -78,6 +85,9 @@ public class IoOrderInvoiceServiceImpl extends ServiceImpl filterGroupBy(IoOrderInvoiceRequest orderInvoiceRequest) { + if (orderInvoiceRequest.getPage() != null) { + int offset = (orderInvoiceRequest.getPage() - 1) * orderInvoiceRequest.getLimit(); + PageHelper.offsetPage(offset, orderInvoiceRequest.getLimit()); + } + return ioOrderInvoiceMapper.filterGroupBy(orderInvoiceRequest); + } + + public List filterInvoice(IoOrderInvoiceRequest orderInvoiceRequest) { + if (orderInvoiceRequest.getPage() != null) { + int offset = (orderInvoiceRequest.getPage() - 1) * orderInvoiceRequest.getLimit(); + PageHelper.offsetPage(offset, orderInvoiceRequest.getLimit()); + } + return ioOrderInvoiceMapper.filterInvoice(orderInvoiceRequest); + } + + + public List filterByInvoiceCode(IoOrderInvoiceRequest orderInvoiceRequest) { + if (orderInvoiceRequest.getPage() != null) { + int offset = (orderInvoiceRequest.getPage() - 1) * orderInvoiceRequest.getLimit(); + PageHelper.offsetPage(offset, orderInvoiceRequest.getLimit()); + } + return ioOrderInvoiceMapper.filterByInvoiceCode(orderInvoiceRequest); + } + + } 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 b6b2c3641..a7acdee02 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 @@ -49,6 +49,7 @@ import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.IntUtil; import com.glxp.api.util.udi.UdiCalCountUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -441,6 +442,21 @@ public class IoOrderServiceImpl implements IoOrderService { return 0; } + //撤回待校验单据 + @Override + public boolean rollUnCheckOrder(String billNo) { + IoOrderEntity orderEntity = findByBillNo(billNo); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK) { + codeTempService.deleteByBillNo(billNo); + ioOrderDetailCodeService.deleteByOrderId(billNo); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setUpdateTime(new Date()); + update(orderEntity); + } + return true; + } + @Resource InvPreinProductService invPreinProductService; @@ -694,6 +710,9 @@ public class IoOrderServiceImpl implements IoOrderService { if (filterOrderRequest.getVueType() == null) return null; bussinessTypeEntities = basicBussinessTypeService.findByVueType(filterOrderRequest.getVueType()); + if (CollectionUtils.isEmpty(bussinessTypeEntities)) { + return null; + } actions = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); filterOrderRequest.setActions(actions); return actions; @@ -874,7 +893,7 @@ public class IoOrderServiceImpl implements IoOrderService { public BaseResponse submitOrderToThrSys(ThrSystemDetailEntity thrSystemDetailEntity) { //查询可以提交到第三方系统的单据 SyncUploadDataSetEntity syncUploadDataSetEntity = syncUploadDataSetService.selectSet(); - List billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk(),syncUploadDataSetEntity.getOrderStartTime()); + List billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk(), syncUploadDataSetEntity.getOrderStartTime()); if (CollUtil.isNotEmpty(billNos)) { log.info("开始提交单据到第三方系统,本次提交单据数量:{}", billNos.size()); for (String billNo : billNos) { 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 2e2b389e2..bd4e749bc 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 @@ -113,8 +113,11 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService innerOrderPrintEntity.setUpdateUser(customerService.getUserId() + ""); FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); filterUdiRelRequest.setId(Long.valueOf(obj.getProductId())); + filterUdiRelRequest.setPackLevel(udiRelevanceDao.selectPackLevel(obj.getNameCode())); + System.out.println(filterUdiRelRequest.getPackLevel()); //查询耗材字典信息 - UdiRelevanceResponse filterUdiRelevance = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest).get(0); +// UdiRelevanceResponse filterUdiRelevance = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest).get(0); + UdiRelevanceResponse filterUdiRelevance = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest).get(Integer.parseInt(filterUdiRelRequest.getPackLevel())-1); //查询产品信息 UdiProductEntity udiProductEntity = udiProductService.findByNameCode(filterUdiRelevance.getNameCode()); diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index 6e495f75b..6fa58021b 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -36,6 +36,7 @@ import com.glxp.api.res.sync.*; import com.glxp.api.service.auth.*; import com.glxp.api.service.basic.*; import com.glxp.api.service.inout.*; +import com.glxp.api.service.inout.impl.IoOrderInvoiceService; import com.glxp.api.service.system.*; import com.glxp.api.service.thrsys.*; import com.glxp.api.util.CustomUtil; diff --git a/src/main/java/com/glxp/api/service/sync/UpBasicService.java b/src/main/java/com/glxp/api/service/sync/UpBasicService.java index 67c5179ab..e453cda21 100644 --- a/src/main/java/com/glxp/api/service/sync/UpBasicService.java +++ b/src/main/java/com/glxp/api/service/sync/UpBasicService.java @@ -23,6 +23,7 @@ import com.glxp.api.service.basic.IBasicBusTypeChangeService; import com.glxp.api.service.basic.IBasicBusTypePreService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; +import com.glxp.api.service.inout.impl.IoOrderInvoiceService; import com.glxp.api.service.purchase.PurOrderDetailService; import com.glxp.api.service.purchase.PurOrderService; import com.glxp.api.service.system.*; diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrOrderService.java b/src/main/java/com/glxp/api/service/thrsys/ThrOrderService.java index e19fdb28c..a242e2c54 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrOrderService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrOrderService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.thrsys; import com.glxp.api.entity.thrsys.ThrOrderEntity; +import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.thrsys.FilterThrOrderRequest; import com.glxp.api.res.thrsys.ThrErpOrderResponse; import com.glxp.api.res.thrsys.ThrOrderResponse; @@ -34,4 +35,7 @@ public interface ThrOrderService { boolean deleteAll(); + void downloadThrOrder(ThrSystemDetailEntity thrSystemDetailEntity); + + } diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrOrdersDlService.java b/src/main/java/com/glxp/api/service/thrsys/ThrOrdersDlService.java index 16e42baac..4ac6272ac 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrOrdersDlService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrOrdersDlService.java @@ -46,10 +46,6 @@ public class ThrOrdersDlService { private ThrOrderImportLogService thrOrderImportLogService; @Resource ThrOrderExportLogService thrOrderExportLogService; - @Resource - ThrOrderImportDetailService thrOrderImportDetailService; -// @Resource -// ThrOrderImportService thrOrderImportService; @Resource private ErpOrderClient erpOrderClient; @@ -88,7 +84,6 @@ public class ThrOrdersDlService { } thrOrderImportLogService.importThrOrder(genKey); redisUtil.set(Constant.dlThrProducts, "false"); - WebSocketServer.sendInfo("业务单据信息下载已完成,请刷新查看!", "sid"); thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); thrOrderImportLogService.updateImportLog(thrOrderImportLogEntity); } diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrSystemBusApiService.java b/src/main/java/com/glxp/api/service/thrsys/ThrSystemBusApiService.java index a6117b5c2..ecfca536f 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrSystemBusApiService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrSystemBusApiService.java @@ -1,12 +1,14 @@ package com.glxp.api.service.thrsys; +import com.baomidou.mybatisplus.extension.service.IService; +import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.req.thrsys.FilterBasicThirdSysDetailRequest; import java.util.List; -public interface ThrSystemBusApiService { +public interface ThrSystemBusApiService extends IService { boolean insertSysBusApi(ThrSystemBusApiEntity basicThirdSysEntity); diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrOrderServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrOrderServiceImpl.java index 27839a21e..d7f4989fe 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrOrderServiceImpl.java @@ -1,17 +1,27 @@ package com.glxp.api.service.thrsys.impl; +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.BasicProcessStatus; +import com.glxp.api.constant.Constant; import com.glxp.api.dao.thrsys.ThrOrderDao; import com.glxp.api.dao.thrsys.ThrOrderDetailDao; -import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; -import com.glxp.api.entity.thrsys.ThrOrderEntity; +import com.glxp.api.entity.thrsys.*; import com.glxp.api.req.thrsys.FilterThrOrderDetailRequest; import com.glxp.api.req.thrsys.FilterThrOrderRequest; import com.glxp.api.res.thrsys.ThrErpOrderResponse; import com.glxp.api.res.thrsys.ThrOrderResponse; +import com.glxp.api.service.thrsys.ThrOrderImportLogService; import com.glxp.api.service.thrsys.ThrOrderService; +import com.glxp.api.service.thrsys.ThrOrdersDlService; +import com.glxp.api.service.thrsys.ThrSystemBusApiService; +import com.glxp.api.util.CustomUtil; +import com.glxp.api.util.IntUtil; +import com.glxp.api.util.MsDateUtil; +import com.glxp.api.util.RedisUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -19,8 +29,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; +@Slf4j @Service @Transactional(rollbackFor = Exception.class) public class ThrOrderServiceImpl implements ThrOrderService { @@ -28,6 +40,14 @@ public class ThrOrderServiceImpl implements ThrOrderService { private ThrOrderDao thrOrderDao; @Resource private ThrOrderDetailDao thrOrderDetailDao; + @Resource + ThrSystemBusApiService thrSystemBusApiService; + @Resource + private ThrOrderImportLogService thrOrderImportLogService; + @Resource + ThrOrdersDlService thrOrdersDlService; + @Resource + RedisUtil redisUtil; @Override public List filterThrOrder(FilterThrOrderRequest filterThrOrderRequest) { @@ -171,4 +191,41 @@ public class ThrOrderServiceImpl implements ThrOrderService { public boolean deleteAll() { return thrOrderDao.deleteAll(); } + + @Override + public void downloadThrOrder(ThrSystemDetailEntity thrSystemDetailEntity) { + + String data = (String) redisUtil.get(Constant.dlThrOrders); + if ((data != null && data.equals("true"))) { + log.error("当前任务正在下载更新业务单据信息,请稍后重试!"); + return; + } else { + redisUtil.set(Constant.dlThrOrders, "true", 1); + List thrSystemBusApiEntities = thrSystemBusApiService.list(new QueryWrapper().eq("thirdSys", "thirdId").eq("type", 1)); + if (CollUtil.isNotEmpty(thrSystemBusApiEntities)) { + for (ThrSystemBusApiEntity thrSystemBusApiEntity : thrSystemBusApiEntities) { + if (StrUtil.isNotEmpty(thrSystemBusApiEntity.getUrl()) && StrUtil.isNotEmpty(thrSystemBusApiEntity.getThirdBuyCode())) { + FilterThrOrderRequest filterErpOrderRequest = new FilterThrOrderRequest(); + filterErpOrderRequest.setThirdSysFk(thrSystemDetailEntity.getThirdSysFk()); + if (thrSystemDetailEntity.getDlLastTime() == null) + thrSystemDetailEntity.setDlLastTime(3 * 24); + Date stateDate = MsDateUtil.getBeforeDay(new Date(), IntUtil.value(thrSystemDetailEntity.getDlLastTime())); + filterErpOrderRequest.setStartDate(MsDateUtil.formatDate(stateDate)); + filterErpOrderRequest.setEndDate(MsDateUtil.formatDate(new Date())); + filterErpOrderRequest.setBillAction(thrSystemBusApiEntity.getThirdBuyCode()); + ThrOrderImportLogEntity thrOrderImportLogEntity = new ThrOrderImportLogEntity(); + String genKey = CustomUtil.getId(); + thrOrderImportLogEntity.setGenKey(genKey); + thrOrderImportLogEntity.setFromType("后台自动下载"); + thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_UNPROCESS); + thrOrderImportLogEntity.setUpdateTime(new Date()); + thrOrderImportLogEntity.setThirdSysFk("thirdId"); + thrOrderImportLogService.insertImportLog(thrOrderImportLogEntity); + thrOrdersDlService.importOrders(genKey, filterErpOrderRequest.getBillAction(), filterErpOrderRequest); + } + } + + } + } + } } diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrSystemBusApiServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrSystemBusApiServiceImpl.java index 1fc64f0da..3c6b3484f 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrSystemBusApiServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrSystemBusApiServiceImpl.java @@ -2,7 +2,10 @@ package com.glxp.api.service.thrsys.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.thrsys.ThrProductsDao; import com.glxp.api.dao.thrsys.ThrSystemBusApiDao; +import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.req.thrsys.FilterBasicThirdSysDetailRequest; import com.glxp.api.service.thrsys.ThrSystemBusApiService; @@ -14,7 +17,7 @@ import java.util.List; @Service @Transactional(rollbackFor = Exception.class) -public class ThrSystemBusApiServiceImpl implements ThrSystemBusApiService { +public class ThrSystemBusApiServiceImpl extends ServiceImpl implements ThrSystemBusApiService { @Resource ThrSystemBusApiDao thrSystemBusApiDao; diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 290f08b5b..aaf5e9027 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -26,6 +26,7 @@ import java.util.Arrays; @EnableScheduling public class SyncHeartTask implements SchedulingConfigurer { + final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); @Resource protected ScheduledDao scheduledDao; @Resource @@ -58,6 +59,8 @@ public class SyncHeartTask implements SchedulingConfigurer { //查询数据同步设置 SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet(); if (syncDataSetEntity.isDownstreamEnable()) { + + //定时上传最近更新基础数据至上游轮询时间 long timeInterval1 = syncDataSetEntity.getSyncTime() * 6 * 1000L; long curTime1 = System.currentTimeMillis(); diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index d02b6f61d..fbd84e7ee 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -14,10 +14,7 @@ import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.res.thrsys.ThirdSysInterfaceExecuteVo; import com.glxp.api.service.inout.IoOrderService; -import com.glxp.api.service.thrsys.IThrBusTypeOriginService; -import com.glxp.api.service.thrsys.ThrCorpService; -import com.glxp.api.service.thrsys.ThrInvWarehouseService; -import com.glxp.api.service.thrsys.ThrProductsService; +import com.glxp.api.service.thrsys.*; import com.glxp.api.util.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; @@ -59,7 +56,8 @@ public class SyncThirdSysTask implements SchedulingConfigurer { private IThrBusTypeOriginService thrBusTypeOriginService; @Resource private IoOrderService orderService; - + @Resource + ThrOrderService thrOrderService; final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); @Resource @@ -124,6 +122,9 @@ public class SyncThirdSysTask implements SchedulingConfigurer { //提交单据 submitOrder(thrSystemDetailEntity); break; + case ThirdSysConstant.ORDER_QUERY_URL: + downloadThrOrder(thrSystemDetailEntity); + break; default: //其他接口暂不处理 break; @@ -246,6 +247,28 @@ public class SyncThirdSysTask implements SchedulingConfigurer { } } + /** + * 下载第三方业务单据 + * + * @param thrSystemDetailEntity + */ + private void downloadThrOrder(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载第三方业务单据"); + try { + thrOrderService.downloadThrOrder(thrSystemDetailEntity); + } catch (Exception e) { + log.error("下载第三方业务单据", e); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("第三方业务单据下载完成"); + }); + } + } + /** * 更新任务状态为已完成 * diff --git a/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java b/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java index 05f50f7b8..69f602f19 100644 --- a/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java +++ b/src/main/java/com/glxp/api/util/udi/FilterUdiUtils.java @@ -109,7 +109,7 @@ public class FilterUdiUtils { String expireDate = ""; String serialNo = null; String udi = ""; - String[] spilts = data.split("#",data.length()); + String[] spilts = data.split("#", data.length()); if (spilts != null && spilts.length >= 5) { udi = spilts[1]; produceDate = spilts[2]; @@ -117,9 +117,13 @@ public class FilterUdiUtils { batchNo = spilts[4]; if (spilts.length > 6) { serialNo = spilts[5]; - if (serialNo != null && serialNo.equals("")) { - serialNo = null; - } + } + + if (StrUtil.isEmpty(batchNo)) { + batchNo = null; + } + if (StrUtil.isEmpty(serialNo)) { + serialNo = null; } } diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index 438491fde..3e96de848 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -58,12 +58,12 @@ public class UdiInfoUtil { } else if (StrUtil.isEmpty(udiProductEntity.getScbssfbhxlh())) { udiProductEntity.setAllowNoExpire(true); } - //名字转拼音 - if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc())) { + //名字转拼音 + if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){ try { - String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); + String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); udiProductEntity.setPinyinInitial(pinyin); - } catch (Exception e) { + }catch (Exception e){ logger.error(ExceptionUtils.getStackTrace(e)); e.printStackTrace(); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 3114d5c6a..eda745787 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://127.0.0.1:3306/udi_wms_wmd?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_wms_pzh?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: @@ -52,6 +52,6 @@ UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs back_file_path: D:/share/udisps/back/ -API_KEY: 1101 -API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L +API_KEY: 1102 +API_SECRET: oIHZqfbtoUNehgJ5MOp5GBlxBIwIo15d WEB_TITLE: 平潭协和医院 diff --git a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml index 56e9d9414..8c3b964a9 100644 --- a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml +++ b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml @@ -25,6 +25,33 @@ + + + + + - SELECT ic.*, - bp.cpmctymc, - bp.ggxh - FROM io_order_invoice ic - LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk - LEFT JOIN basic_products bp ON bu.uuid = bp.uuid - - - AND ic.orderIdFk = #{orderIdFk} - - - AND (ic.orderIdFk is null or ic.orderIdFk = '') - - - AND ic.bindRlFk = #{bindRlFk} - - - AND ic.batchNo = #{batchNo} - - - AND (ic.batchNo is null or ic.batchNo = '') - - - GROUP BY ic.id - - diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml index 07c4936ad..c4339d3d5 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml @@ -50,20 +50,23 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml index d3b410844..dd82dc640 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml @@ -2,9 +2,16 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 3d9e2f404..1dd5be140 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -14,7 +14,7 @@ (select name from auth_warehouse aw2 where aw2.code = io.fromInvCode) fromInvName, (select name from basic_corp bc where bc.erpId = io.fromCorp) fromCorpName, (select name from basic_corp bc where bc.erpId = io.customerId) customerName - from io_order as io + from io_order as io INNER JOIN io_unit_maintain_platform a2 on io.action = a2.sourceAction AND io.fromCorp = a2.unitId @@ -29,6 +29,9 @@ AND action = #{action} + + AND remark like concat('%', #{remark}, '%') + AND mainAction = #{mainAction} @@ -77,7 +80,10 @@ #{item} - + + AND (io.remark like concat('%', #{unionRemark}, '%') + or io.outSickInfo like concat('%', #{unionRemark}, '%')) + AND status in @@ -139,8 +145,8 @@ - - order by ${orderBy} ${sort} + + order by ${orderBy} ${sort} order by updateTime desc @@ -294,8 +300,8 @@ - - order by ${orderBy} ${sort} + + order by ${orderBy} ${sort} order by updateTime desc @@ -340,6 +346,10 @@ AND syncStatus = #{syncStatus} + + AND (io.remark like concat('%', #{unionRemark}, '%') + or io.outSickInfo like concat('%', #{unionRemark}, '%')) + AND busType = #{busType} @@ -441,7 +451,7 @@ AND t1.thirdSys = #{thirdSys} - + = DATE_FORMAT(#{orderStartTime}, '%Y-%m-%d %H:%i:%S') ]]> @@ -462,43 +472,43 @@ + SELECT ic.*, bp.cpmctymc, bp.ggxh + FROM io_order_invoice ic + LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk + LEFT JOIN basic_products bp ON bu.uuid = bp.uuid + and bp.id > 1 + + + AND ic.orderIdFk = #{orderIdFk} + + + AND ic.bindRlFk = #{bindRlFk} + + + AND ic.batchNo = #{batchNo} + + + AND (ic.batchNo is null or ic.batchNo = '') + + + GROUP BY ic.id + + + + + + + + + + + + + + diff --git a/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml index 2f783ecc2..86c241ece 100644 --- a/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InnerOrderDetailDao.xml @@ -30,7 +30,7 @@ replace INTO inv_inner_order_detail ( - orderIdFk,productId,productName,`count`,productDate,expireDate,batchNo + orderIdFk,productId,productName,`count`,productDate,expireDate,batchNo,nameCode ) values ( #{orderIdFk}, @@ -39,7 +39,8 @@ #{count}, #{productDate}, #{expireDate}, - #{batchNo} + #{batchNo}, + #{nameCode} ) @@ -75,6 +76,7 @@ expireDate=#{expireDate}, productDate=#{productDate}, batchNo=#{batchNo}, + nameCode=#{nameCode}, WHERE id = #{id} diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml index 7fb4dea5e..459f04dac 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml @@ -46,7 +46,7 @@ ORDER BY thr_order.updateTime DESC - + replace INTO thr_order (id, billFlag, billNo, billdate, billType, corpId, corpName, inoutType, deptCode, diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrSystemDetailDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrSystemDetailDao.xml index 0ad8788ba..200409962 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrSystemDetailDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrSystemDetailDao.xml @@ -2,21 +2,41 @@ - UPDATE thr_system_detail - value=#{value}, - enabled=#{enabled}, - itrCache=#{itrCache}, - guideUrl=#{guideUrl}, - remark=#{remark}, - name=#{name}, - fromType=#{fromType}, - thirdSysFk=#{thirdSysFk}, - time=#{time}, + + value=#{value}, + + + enabled=#{enabled}, + + + itrCache=#{itrCache}, + + + guideUrl=#{guideUrl}, + + + remark=#{remark}, + + + name=#{name}, + + + fromType=#{fromType}, + + + thirdSysFk=#{thirdSysFk}, + + + time=#{time}, + + + dlLastTime=#{dlLastTime}, + - WHERE id=#{id} + WHERE id = #{id} - \ No newline at end of file + diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 531f8f880..e1b3f5609 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -500,7 +500,7 @@ CALL Pro_Temp_ColumnWork('inv_place_order_detail', 'topInvSpaceCode', 'varchar(2 call Modify_index('basic_products', 'uuid', 'idx_uuid', 'BTREE'); - +call Modify_index('basic_products', 'nameCode', 'idex_nameCode', 'BTREE'); @@ -513,6 +513,11 @@ CALL Pro_Temp_ColumnWork('basic_products', 'syqsfxyjxmj', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('basic_products', 'mjfs', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('basic_products', 'categoryName', 'varchar(255)', 1); + + +CALL Pro_Temp_ColumnWork('thr_system_detail', 'dlLastTime', 'int', 1); + + INSERT ignore INTO `sys_param_config`(id, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`, `paramType`, `paramExplain`, `updateTime`) @@ -592,4 +597,7 @@ CREATE TABLE if not exists `io_destiny_process_detail` ROW_FORMAT = Dynamic; +CALL Pro_Temp_ColumnWork('io_order', 'outSickInfo', 'varchar(255)', 1); + +