diff --git a/pom.xml b/pom.xml index caecc4254..2ee2eb4fc 100644 --- a/pom.xml +++ b/pom.xml @@ -314,6 +314,12 @@ 1.0.47_1 + + commons-fileupload + commons-fileupload + 1.3.1 + + diff --git a/src/main/java/com/glxp/api/controller/auth/LoginController.java b/src/main/java/com/glxp/api/controller/auth/LoginController.java index 9367112da..d9c918a33 100644 --- a/src/main/java/com/glxp/api/controller/auth/LoginController.java +++ b/src/main/java/com/glxp/api/controller/auth/LoginController.java @@ -14,6 +14,7 @@ import com.glxp.api.req.auth.PCLoginRequest; import com.glxp.api.req.auth.UpdatePasswordRequest; import com.glxp.api.res.auth.LoginResponse; import com.glxp.api.res.auth.LoginUserInfoResponse; +import com.glxp.api.res.auth.WebTitleResponse; import com.glxp.api.service.system.CompanyService; import com.glxp.api.service.monitor.LogininforService; import com.glxp.api.common.enums.ResultEnum; @@ -24,6 +25,7 @@ import com.glxp.api.util.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -294,4 +296,16 @@ public class LoginController extends BaseController { return ResultVOUtils.error(ResultEnum.DATA_CHANGE); } + + @Value("${WEB_TITLE}") + private String WEB_TITLE; + + @GetMapping("/spms/getTitleConfig") + public BaseResponse getTitleConfig() { + WebTitleResponse webTitleResponse = new WebTitleResponse(); + webTitleResponse.setTitle(WEB_TITLE); + return ResultVOUtils.success(webTitleResponse); + } + + } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java b/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java index 549b79918..c9362f972 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicCorpController.java @@ -522,5 +522,12 @@ public class BasicCorpController { return ResultVOUtils.success(getCorpList); } + @AuthRuleAnnotation("") + @GetMapping("/udiwms/basic/unit/maintain/getCorpLists") + public BaseResponse getCorpLists() { + List getCorpList = basicUnitMaintainService.getCorpLists(); + return ResultVOUtils.success(getCorpList); + } + } 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 36cb2eccd..970124695 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicProductCategoryController.java @@ -38,7 +38,6 @@ public class BasicProductCategoryController { @Resource BasicProductCategoryService basicProductCategoryService; - @GetMapping("/udiwms/basic/product/category/filter") public BaseResponse filterBasicUnitMaintain(BasicHospTypeFilterRequest basicHospTypeFilterRequest, BindingResult bindingResult) { @@ -170,18 +169,25 @@ public class BasicProductCategoryController { @GetMapping("/udiwms/basic/product/category/bindList") public BaseResponse bindList(FilterUdiProductRequest filterUdiProductRequest) { - if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode()) && StrUtil.isEmpty(filterUdiProductRequest.getUnionCode())) { - if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode())) { - UdiEntity udi = FilterUdiUtils.getUdi(filterUdiProductRequest.getUdiCode()); - filterUdiProductRequest.setNameCode(udi.getUdi()); + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUdiCode())) { + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterUdiProductRequest.getUdiCode()); + if (udiEntity != null) { + filterUdiProductRequest.setNameCode(udiEntity.getUdi()); + filterUdiProductRequest.setUnionCode(udiEntity.getUdi()); } - List udiRelevanceResponses = basicProductCategoryService.selectAll(filterUdiProductRequest); - if(udiRelevanceResponses != null && udiRelevanceResponses.size()>0){ - filterUdiProductRequest.setOriginUuid(udiRelevanceResponses.get(0).getOriginUuid()); - filterUdiProductRequest.setNameCode(null); - } - - }else{ + } + //如果输入DI标识,精确找到不同层级对应的产品信息 + if (StrUtil.isNotEmpty(filterUdiProductRequest.getUnionCode())) { + FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); + filterUdiInfoRequest.setNameCode(filterUdiProductRequest.getUnionCode()); + List temps = basicHospTypeService.filterUdiGp(filterUdiInfoRequest); + if (temps != null && temps.size() > 0) { + filterUdiProductRequest.setOriginUuid(temps.get(0).getOriginUuid()); + filterUdiProductRequest.setNameCode(filterUdiInfoRequest.getNameCode()); + filterUdiProductRequest.setUnionCode(null); + } + } else { + //只查找主标识产品信息 filterUdiProductRequest.setDiType(1); } @@ -198,7 +204,19 @@ public class BasicProductCategoryController { //是否是一级分类 BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); - + //过滤已被选入的产品 + FilterUdiProductRequest request = new FilterUdiProductRequest(); + if("10000".equals(category.getParentCode())) { + request.setCode(filterUdiRelRequest.getParentCode()); + }else{ + request.setCode(category.getCode()); + } + List udiRelevanceResponses1 = basicProductCategoryService.selectAll(request); + ArrayList list = new ArrayList<>(); + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses1) { + list.add(udiRelevanceResponse.getId()); + } + filterUdiRelRequest.setExistid(list); List udiRelevanceResponses=null; @@ -213,7 +231,7 @@ public class BasicProductCategoryController { if (StrUtil.isNotEmpty(filterUdiRelRequest.getUnionCode())) { FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest(); filterUdiInfoRequest.setNameCode(filterUdiRelRequest.getUnionCode()); - List temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest); + List temps = basicHospTypeService.filterUdiGp(filterUdiInfoRequest); if (temps != null && temps.size() > 0) { filterUdiRelRequest.setOriginUuid(temps.get(0).getOriginUuid()); filterUdiRelRequest.setNameCode(filterUdiInfoRequest.getNameCode()); @@ -225,7 +243,8 @@ public class BasicProductCategoryController { } if("10000".equals(category.getParentCode())) { //查全部 - udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); + udiRelevanceResponses= basicHospTypeService.filterUdiGpexist(filterUdiRelRequest); + }else{ // 查上级 FilterUdiProductRequest filterUdiProductRequest = new FilterUdiProductRequest(); @@ -235,10 +254,12 @@ public class BasicProductCategoryController { filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); - + filterUdiProductRequest.setNameCode(filterUdiRelRequest.getNameCode()); + filterUdiProductRequest.setExistid(list); udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); } + PageInfo pageInfo = new PageInfo<>(udiRelevanceResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); @@ -251,8 +272,7 @@ public class BasicProductCategoryController { @GetMapping("/udiwms/basic/product/category/SelcetproductList") public BaseResponse SelectproductList(FilterUdiRelRequest filterUdiRelRequest) { - //是否是一级分类 - BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); + List udiRelevanceResponses=null; @@ -278,6 +298,8 @@ public class BasicProductCategoryController { //只查找主标识产品信息 filterUdiRelRequest.setDiType(1); } + //是否是一级分类 + BasicProductCategory category = basicProductCategoryService.checkCode(filterUdiRelRequest.getParentCode()); if("10000".equals(category.getParentCode())) { //查全部 udiRelevanceResponses= basicHospTypeService.filterUdiGp(filterUdiRelRequest); @@ -290,6 +312,7 @@ public class BasicProductCategoryController { filterUdiProductRequest.setYlqxzcrbarmc(filterUdiRelRequest.getYlqxzcrbarmc()); filterUdiProductRequest.setUnionCode(filterUdiRelRequest.getUnionCode()); filterUdiProductRequest.setThrPiId(filterUdiRelRequest.getThrPiId()); + filterUdiProductRequest.setNameCode(filterUdiRelRequest.getNameCode()); udiRelevanceResponses= basicProductCategoryService.selectAll(filterUdiProductRequest); 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 44203cf3d..377ebc9b6 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java @@ -126,7 +126,7 @@ public class UdiRlSupController extends BaseController { @AuthRuleAnnotation("") @GetMapping("/sale/info/company/product/plan/relevance/filter") public BaseResponse filterCompanyProductPlanRelevance(CompanyProductRelevanceRequest companyProductRelevanceRequest, - BindingResult bindingResult) { + BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } @@ -160,12 +160,12 @@ public class UdiRlSupController extends BaseController { companyProductRelevanceRequest.setDiType(1); } //查询详情id过滤 - List purApplyDetailEntityList= purApplyDetailService.findByOrderId(companyProductRelevanceRequest.getId()); + List purApplyDetailEntityList = purApplyDetailService.findByOrderId(companyProductRelevanceRequest.getId()); List idList = purApplyDetailEntityList.stream().map(PurApplyDetailEntity::getProductId).collect(Collectors.toList()); List basicInstrumentMaintainRelevanceResponses = null; - FilterUdiRelRequest filterUdiRelRequest=new FilterUdiRelRequest(); - BeanCopyUtils.copy(companyProductRelevanceRequest,filterUdiRelRequest); + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest); filterUdiRelRequest.setIds(idList); basicInstrumentMaintainRelevanceResponses = udiRelevanceService.filterUdiJoinSup(filterUdiRelRequest); PageInfo pageInfo; 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 e2bfce670..97b3f21d2 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -575,11 +575,11 @@ public class IoCodeTempController extends BaseController { BaseResponse invRes = null; if (bussinessTypeEntity.isScanPreIn()) { //校验预验收库存 - invRes = checkPreInInv(bussinessTypeEntity, exitLocalEntity); + invRes = checkPreInInv(bussinessTypeEntity, genDetaiEntity); } else if (bussinessTypeEntity.isAdvancePreIn()) { //校验寄售库存 - invRes = checkPreInv(bussinessTypeEntity, exitLocalEntity); + invRes = checkPreInv(bussinessTypeEntity, genDetaiEntity); } else { - invRes = checkInv(bussinessTypeEntity, exitLocalEntity); + invRes = checkInv(bussinessTypeEntity, genDetaiEntity); } if (invRes != null) { return invRes; @@ -791,15 +791,15 @@ 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); +// 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()); +// 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) { //按指定货位出库 if (StrUtil.isEmpty(codeTempEntity.getPreSpaceCode())) { @@ -816,35 +816,38 @@ 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()); +// 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()); +// 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, "寄售库存数量不足"); - } - } +// 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, "寄售库存数量不足"); } } return null; @@ -908,7 +911,7 @@ public class IoCodeTempController extends BaseController { } } else { if (count < 1) { - return ResultVOUtils.error(500, "寄售预验收数量不足"); + return ResultVOUtils.error(500, "预验收库存数量不足"); } } } @@ -1058,15 +1061,15 @@ public class IoCodeTempController extends BaseController { if (bussinessTypeEntity.isVailInv() && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null, codeTempEntity.getCode()); - } else - count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null); +// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { +// count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null, codeTempEntity.getCode()); +// } else + count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), codeTempEntity.getCode()); - } else - count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); +// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { +// count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), codeTempEntity.getCode()); +// } else + count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { //按指定货位出库 if (StrUtil.isEmpty(codeTempEntity.getWarehouseCode())) { @@ -1082,17 +1085,18 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); } } else { - if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { - count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), codeTempEntity.getCode()); - } else - count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); +// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { +// count = invProductDetailService.vailStockCountByCode(codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode(), codeTempEntity.getCode()); +// } else + count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); } } if (count <= 0) { return ResultVOUtils.error(500, "当前库存不足"); } else { //查询此单据已扫描的条码数量 - if (codeTempEntity.getMyReCount() > count) { + int exitCount = IntUtil.value(codeTempService.selectExitCount(codeTempEntity.getOrderId(), codeTempEntity.getBatchNo(), codeTempEntity.getRelId(), codeTempEntity.getSupId())); + if ((codeTempEntity.getMyReCount() + exitCount) > count) { return ResultVOUtils.error(500, "当前库存不足"); } } 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 b8defb26c..6c8132534 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -15,6 +15,7 @@ import com.glxp.api.constant.BusinessType; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.InvBusUserEntity; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; @@ -28,9 +29,9 @@ 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.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse; +import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.BasicCorpService; @@ -47,13 +48,10 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; - import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; -import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_PROCESSING; @Slf4j @@ -80,6 +78,8 @@ public class IoOrderController extends BaseController { BasicCorpService basicCorpService; @Resource IoOrderInvoiceService orderInvoiceService; + @Resource + CustomerService customerService; /** * 查询单据列表 @@ -829,4 +829,14 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success(); } + @GetMapping ("/udiwms/inout/order/getUserBean") + public BaseResponse getUserBean(){ + AuthAdmin userBean = customerService.getUserBean(); + + + return ResultVOUtils.success(userBean); + } + + + } 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 2e2d6227e..d7df4709b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -253,7 +253,8 @@ public class IoOrderDetailResultController extends BaseController { i++; } - String param = JSON.toJSONString(list); + data.put("data", list); + String param = JSON.toJSONString(data); JasperUtils.jasperReport(request, response, param, filePath+"pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf"); 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 82562e630..852697311 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -281,6 +281,8 @@ public class IoOrderReviewController extends BaseController { GennerOrderUtils gennerOrderUtils; @Resource SystemParamConfigService systemParamConfigService; + @Resource + IoAddInoutService addInoutService; public void transferOrder(IoOrderEntity orderEntity, EntrustReceEntity entrustReceEntity) { List warehouseEntities = codeService.findByOrderId(orderEntity.getBillNo()); @@ -292,16 +294,8 @@ public class IoOrderReviewController extends BaseController { String supplementOrderNo = orderNo; supplementOrder.setOriginUllageSupNo(orderEntity.getBillNo()); supplementOrder.setBillNo(supplementOrderNo); - -// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); -// if ("1".equals(systemParamConfigEntity.getParamValue())) { -// supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); //设置状态为补录单据 -// } else { -// supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据 -// } - - supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); //设置导出状态为未导出 + supplementOrder.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); supplementOrder.setCorpOrderId(CustomUtil.getId() + "x"); //修改往来单位及当前库存号 supplementOrder.setFromCorp(null); @@ -335,6 +329,9 @@ public class IoOrderReviewController extends BaseController { orderEntity.setUllageSupNo(supplementOrder.getBillNo()); orderService.update(orderEntity); codeTempService.insertBatch(supplementCodes); + for (IoCodeTempEntity codeTempEntity : supplementCodes) { + addInoutService.genOrderDetailCode(supplementOrder, codeTempEntity); + } } @@ -543,8 +540,6 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success(acceptOrderEntity); } - @Resource - IoAddInoutService addInoutService; @Resource InvBusUserService invBusUserService; diff --git a/src/main/java/com/glxp/api/controller/inout/PlatformController.java b/src/main/java/com/glxp/api/controller/inout/PlatformController.java new file mode 100644 index 000000000..3326e6ea0 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inout/PlatformController.java @@ -0,0 +1,251 @@ +package com.glxp.api.controller.inout; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.inout.UnitMaintainPlatformEntity; +import com.glxp.api.entity.system.PlatformEntity; +import com.glxp.api.req.inout.PlatformLinkRequest; +import com.glxp.api.req.system.DeleteRequest; +import com.glxp.api.req.system.PlatformUserInfoRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.inout.PlatformLinkResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.inout.PlatformService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@Slf4j +public class PlatformController { + + @Resource + private PlatformService platformService; + @Resource + private CustomerService customerService; + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/remove") + public BaseResponse remove(@RequestBody PlatformEntity platformEntity) { + if (platformService.remove(platformEntity.getId()) > 0) { + ResultVOUtils.success("删除成功"); + } + return ResultVOUtils.error(500, "删除失败"); + } + + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/update") + public BaseResponse update(@RequestBody PlatformEntity platformEntity) { + if (StrUtil.isBlank(platformEntity.getName()) || StrUtil.isBlank(platformEntity.getHost())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空"); + } + return platformService.update(platformEntity); + } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/list") + public BaseResponse list(@RequestParam Map params) { + List list = platformService.list(params); + PageInfo pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(pageInfo.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 测试账号连通性 + * + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/testUserInfo") + public BaseResponse testUserInfo(@RequestBody PlatformUserInfoRequest platformUserInfoRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + PlatformEntity platformEntity = platformService.getPlatformById(platformUserInfoRequest.getPlatformId()); + if (null == platformEntity || StrUtil.isBlank(platformEntity.getHost())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + + String url = platformEntity.getHost() + "/verify"; + Map map = new HashMap<>(); + map.put("username", platformUserInfoRequest.getUsername()); + map.put("password", platformUserInfoRequest.getPassword()); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + + HttpEntity request = new HttpEntity<>(JSON.toJSONString(map), headers); + RestTemplate restTemplate = new RestTemplate(); + log.error(url); + + String result = restTemplate.postForObject(url, request, String.class, map); + log.error(result); + Map object = JSON.parseObject(result, Map.class); + if (!String.valueOf(object.get("code")).equals("20000")) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, String.valueOf(object.get("message"))); + } + Map data = JSON.parseObject(JSON.toJSONString(object.get("data")), Map.class); + + ObjectMapper mapper = new ObjectMapper(); + UnitMaintainPlatformEntity unitMaintainPlatformEntity = mapper.convertValue(data, UnitMaintainPlatformEntity.class); + return ResultVOUtils.success(unitMaintainPlatformEntity); + } + + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/link") + public BaseResponse update(@RequestBody PlatformLinkRequest platformLinkRequest) { + //判断此数据是否重复 + String verifyResult = platformService.verifyUnitMaintainPlatform(platformLinkRequest); + if (!verifyResult.equals("success")) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, verifyResult); + } + UnitMaintainPlatformEntity unitMaintainPlatform = new UnitMaintainPlatformEntity(); + BeanUtil.copyProperties(platformLinkRequest, unitMaintainPlatform); + unitMaintainPlatform.setCustomerId(Long.valueOf(unitMaintainPlatform.getUnitId())); + platformService.saveUnitPlatform(unitMaintainPlatform); + return ResultVOUtils.success("关联成功"); + } + + /** + * 获取往来单位与自助平台关联数据 + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/getLinkPlatformList") + public BaseResponse getLinkPlatformList(PlatformLinkRequest platformLinkRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + platformLinkRequest.setCustomerId(String.valueOf(customerService.getUserBean().getCustomerId())); + List list = platformService.getLinkPlatformList(platformLinkRequest); + PageInfo pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(pageInfo.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 解绑往来单位和自助平台的关联 + * + * @param deleteRequest + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/unbind") + public BaseResponse unbindPlatform(DeleteRequest deleteRequest) { + if (StrUtil.isBlank(deleteRequest.getId())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + platformService.unbindPlatform(deleteRequest.getId()); + return ResultVOUtils.success(); + } + + /** + * 获取对应平台单据类型 + * + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/getTargetActions") + public BaseResponse getTargetActions(String platformId, String invSubCode, String apiKey, String apiSecret) { + if (StrUtil.isBlank(platformId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return platformService.getTargetActions(platformId, invSubCode, apiKey, apiSecret); + } + + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/getTargetInv") + public BaseResponse getTargetInv(String platformId, String apiKey, String apiSecret) { + if (StrUtil.isBlank(platformId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return platformService.getTargetInv(platformId, apiKey, apiSecret); + } + + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/getTargetSubInv") + public BaseResponse getTargetSubInv(String platformId, String invCode, String apiKey, String apiSecret) { + if (StrUtil.isBlank(platformId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return platformService.getTargetSubInv(platformId, invCode, apiKey, apiSecret); + } + + /** + * 测试自助平台连通性 + * + * @param host + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("udiwms/platform/testPlatformConnection") + public BaseResponse testPlatformConnection(String host) { + if (StrUtil.isBlank(host)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return platformService.testPlatformConnection(host); + } + + /** + * 获取客户详情 + * + * @param platformLinkRequest + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/udiwms/platform/getPlatFormDelect") + public BaseResponse getPlatFormDelect(@RequestBody PlatformLinkRequest platformLinkRequest) { + + List platformLinkResponses = platformService.selectDelectList(platformLinkRequest); + PageInfo pageInfo = new PageInfo<>(platformLinkResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(pageInfo.getList()); + + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 上传单据到自助 + * + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("/udiwms/platform/uploadOrder") + public BaseResponse uploadOrder(String orderId) throws JsonProcessingException { + if (StrUtil.isBlank(orderId)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return platformService.uploadOrder(orderId); + } + + + + + +} diff --git a/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java b/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java index 64cdbff07..9cb8319a7 100644 --- a/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java +++ b/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java @@ -291,8 +291,13 @@ public class IoPurChangeService { ioOrderEntity.setAction(basicBusTypeChangeEntity.getTargetAction()); ioOrderEntity.setFromCorp(m.getKey()); ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN); - ioOrderEntity.setStatus(1); - ioOrderEntity.setDealStatus(1); + if (basicBusTypeChangeEntity.getAuditStatus() == 1) { + ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + } else { + ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + } ioOrderEntity.setOrderType(1); ioOrderEntity.setCreateTime(new Date()); ioOrderEntity.setCreateUser(purReceiveEntity.getCreateUser()); @@ -325,8 +330,6 @@ public class IoPurChangeService { ioOrderDetailBizService.insert(ioOrderDetailBizEntity); } } -// purReceiveEntity.se(billNo.substring(0, billNo.length() - 1)); -// receiveService.update(purPlanEntity1); } } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java index 31dc2c92e..6a83ee3d8 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java @@ -176,6 +176,23 @@ public class ThrProductsController { } + /** + * 编辑第三方产品信息 + * + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("/udiwms/udiinfo/erp/products/update") + public BaseResponse updateProduct(@RequestBody ThrProductsEntity thrProductsEntity) { + + if (null == thrProductsEntity) + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + thrProductsEntity.setUpdateTime(new Date()); + thrProductsService.updateById(thrProductsEntity); + return ResultVOUtils.success("修改成功!"); + } + + /** * 第三方产品信息导入 * diff --git a/src/main/java/com/glxp/api/dao/basic/BasicCorpDao.java b/src/main/java/com/glxp/api/dao/basic/BasicCorpDao.java index 2656ad80c..c9874040c 100644 --- a/src/main/java/com/glxp/api/dao/basic/BasicCorpDao.java +++ b/src/main/java/com/glxp/api/dao/basic/BasicCorpDao.java @@ -63,4 +63,7 @@ public interface BasicCorpDao extends BaseMapperPlus getCorpList(); + + List getCorpLists(); + } 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 0667bd3d3..6580c5dda 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -21,6 +21,8 @@ public interface UdiRelevanceDao extends BaseMapperPlus filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + List filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest); + // UdiRelevanceResponse selectUdiByUUid List selectByUuid(@Param("uuid") String uuid); 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 38a66c9d7..95f7a691a 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java @@ -16,4 +16,6 @@ public interface IoCodeTempDao extends BaseMapperPlus selectCodeList(FilterCodeRequest filterCodeRequest); + + Integer selectExitCount(FilterCodeRequest filterCodeRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/PlatformDao.java b/src/main/java/com/glxp/api/dao/inout/PlatformDao.java new file mode 100644 index 000000000..0101cdcd9 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/PlatformDao.java @@ -0,0 +1,40 @@ +package com.glxp.api.dao.inout; + + +import com.glxp.api.entity.system.PlatformEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface PlatformDao { + + int batchSave(List list); + + List list( Map map); + + int count(Map map); + + PlatformEntity get(String id); + + /** + * 根据名称和访问地址查询平台信息 + * + * @param name + * @param host + * @return + */ + List selectByNameAndHost(@Param("name") String name, @Param("host") String host); + + PlatformEntity selectById(@Param("platformId") String platformId); + + int insert(PlatformEntity platformEntity); + + List selectList(@Param("id") String id, @Param("name") String name, @Param("host") String host); + + int deleteById(@Param("id") String id); + + void updateById(PlatformEntity platformEntity); +} diff --git a/src/main/java/com/glxp/api/dao/inout/UnitMaintainPlatformDao.java b/src/main/java/com/glxp/api/dao/inout/UnitMaintainPlatformDao.java new file mode 100644 index 000000000..f70ad117b --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/UnitMaintainPlatformDao.java @@ -0,0 +1,48 @@ +package com.glxp.api.dao.inout; + + +import com.glxp.api.entity.inout.UnitMaintainPlatformEntity; +import com.glxp.api.req.inout.PlatformLinkRequest; +import com.glxp.api.res.inout.PlatformLinkResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface UnitMaintainPlatformDao { + + /** + * 查询医院客户列表 + * + * @param page + * @param customerId + * @param key + * @return + */ + List getLinkPlatformList(@Param("customerId") String customerId, @Param("key") String key); + + /** + * 根据客户ID查询关联数据 + * + * @param customerId + * @return + */ + List selectByCustomerId(@Param("customerId") Long customerId); + + void updateById(UnitMaintainPlatformEntity maintainPlatform); + + void insert(UnitMaintainPlatformEntity unitMaintainPlatformEntity); + + List selectList(PlatformLinkRequest platformLinkRequest); + + UnitMaintainPlatformEntity findLinkData(@Param("customerId") long customerId, @Param("action") String action, @Param("unitId") String unitId); + + void deleteById(String id); + + Long selectCount(@Param("unitId") String unitId, @Param("action") String action); + + List selectDelectList(@Param("platformId") String platformId); + + PlatformLinkResponse selectByUnitld(@Param("unitld") String unitld); +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/UnitMaintainPlatformEntity.java b/src/main/java/com/glxp/api/entity/inout/UnitMaintainPlatformEntity.java new file mode 100644 index 000000000..78d30c5b7 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/UnitMaintainPlatformEntity.java @@ -0,0 +1,71 @@ +package com.glxp.api.entity.inout; + +import lombok.Data; + +/** + * 医院客户表 + */ +@Data +public class UnitMaintainPlatformEntity { + + private Integer id; + + /** + * 往来单位ID + */ + private String unitId; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 平台ID + */ + private String platformId; + + /** + * 源单据类型 + */ + private String sourceAction; + + /** + * 目标单据类型 + */ + private String targetAction; + + /** + * 仓库码 + */ + private String invCode; + + /** + * 分库码 + */ + private String invSubCode; + + /** + * 应用名称 + */ + private String appid; + + /** + * 秘钥 + */ + private String secretKey; + + /** + * 应用ID + */ + private String apiKey; + + + //目标单据类型 + private String targetName; + + private String invName; + + private String invSubName; + +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java index 2b54dab8f..286bca11b 100644 --- a/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java +++ b/src/main/java/com/glxp/api/req/basic/CompanyProductRelevanceRequest.java @@ -55,4 +55,14 @@ public class CompanyProductRelevanceRequest extends ListPageRequest { private String manufactory; private String flbm; private List uuids; + + private String basicPrductRemak1; + private String basicPrductRemak2; + private String basicPrductRemak3; + private String basicPrductRemak4; + private String basicPrductRemak5; + private String basicPrductRemak6; + private String basicPrductRemak7; + private String basicPrductRemak8; + } diff --git a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java index a639efbc1..98fa46517 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiProductRequest.java @@ -3,6 +3,8 @@ package com.glxp.api.req.basic; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + @Data public class FilterUdiProductRequest extends ListPageRequest { @@ -19,6 +21,7 @@ public class FilterUdiProductRequest extends ListPageRequest { private String thrPiId; private String originUuid; private Integer diType; + private List existid; 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 b7840c826..bea9e34eb 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterUdiRelRequest.java @@ -77,5 +77,15 @@ public class FilterUdiRelRequest extends ListPageRequest { private List ids; private String flbm; private String parentCode; + private List existid; + + private String basicPrductRemak1; + private String basicPrductRemak2; + private String basicPrductRemak3; + private String basicPrductRemak4; + private String basicPrductRemak5; + private String basicPrductRemak6; + private String basicPrductRemak7; + private String basicPrductRemak8; } 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 b84784f3b..b1b3c9e94 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -190,4 +190,6 @@ public class FilterOrderRequest extends ListPageRequest { private List invoiceActions2; private String orderBy; + private String uploadKey; + } diff --git a/src/main/java/com/glxp/api/req/inout/PlatformLinkRequest.java b/src/main/java/com/glxp/api/req/inout/PlatformLinkRequest.java new file mode 100644 index 000000000..0c46aecca --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/PlatformLinkRequest.java @@ -0,0 +1,46 @@ +package com.glxp.api.req.inout; + + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +/** + * 医院客户请求参数 + */ +@Data +public class PlatformLinkRequest extends ListPageRequest { + + private Integer id; + + private String unitId; + + private String corpName; + + private String platformId; + + private String platformUsername; + + private String platformPassword; + + private String appid; + + private String apiKey; + + private String secretKey; + + private String sourceAction; + + private String targetAction; + + private String invCode; + + private String invSubCode; + + private String key; + + private String customerId; + + private String invName; + private String invSubName; + private String targetName; +} diff --git a/src/main/java/com/glxp/api/res/auth/WebTitleResponse.java b/src/main/java/com/glxp/api/res/auth/WebTitleResponse.java new file mode 100644 index 000000000..200501e5f --- /dev/null +++ b/src/main/java/com/glxp/api/res/auth/WebTitleResponse.java @@ -0,0 +1,10 @@ +package com.glxp.api.res.auth; + +import lombok.Data; + +@Data +public class WebTitleResponse { + + private String title; + +} diff --git a/src/main/java/com/glxp/api/res/inout/IoUploadOrderResponse.java b/src/main/java/com/glxp/api/res/inout/IoUploadOrderResponse.java new file mode 100644 index 000000000..a9849c649 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/IoUploadOrderResponse.java @@ -0,0 +1,19 @@ +package com.glxp.api.res.inout; + +import com.glxp.api.entity.inout.*; +import lombok.Data; + +import java.util.List; + +@Data +public class IoUploadOrderResponse { + + private List ioOrderDetailCodeEntityList; + private List ioCodeTempEntityList; + private IoOrderEntity ioOrderEntity; + private PlatformLinkResponse platformLinkRespons; + private List ioOrderDetailBizEntityList; + private List ioOrderDetailResultEntityList; + private List ioOrderInvoiceEntityList; + +} diff --git a/src/main/java/com/glxp/api/res/inout/PlatformLinkResponse.java b/src/main/java/com/glxp/api/res/inout/PlatformLinkResponse.java new file mode 100644 index 000000000..29c43fddf --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/PlatformLinkResponse.java @@ -0,0 +1,44 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +/** + * 往来单位关联自助平台数据实体类 + */ +@Data +public class PlatformLinkResponse { + + //往来单位ID + private Long id; + //往来单位编码 + private String unitId; + //往来单位名称 + private String corpName; + //往来单位类型 + private Integer corpType; + //拼音码 + private String pinyinCode; + //自助平台名称 + private String platformName; + //自助平台ID + private String platformId; + + private String socurceName; + + //本地单据类型 + private String sourceAction; + private String sourceName; + //目标单据类型 + private String targetAction; + private String targetName; + + private String invCode; + private String invName; + private String invSubCode; + private String invSubName; + + private String name; + private String host; + private String appid; + private String secretKey; +} diff --git a/src/main/java/com/glxp/api/service/basic/BasicCorpService.java b/src/main/java/com/glxp/api/service/basic/BasicCorpService.java index c1ef129ea..5dc88a603 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicCorpService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicCorpService.java @@ -55,4 +55,6 @@ public interface BasicCorpService { List selectCorpList(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest); + List getCorpLists(); + } diff --git a/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java index bba6e0f9d..fc0ebceaf 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicHospTypeService.java @@ -35,6 +35,8 @@ public interface BasicHospTypeService extends IService { List filterUdiGp(FilterUdiRelRequest filterUdiRelRequest); + List filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest); + Boolean checkName(BasicHospTypeRequest basicHospTypeRequest, Integer type); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java index 4c6638100..50e57fc33 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicCorpServiceImpl.java @@ -167,4 +167,9 @@ public class BasicCorpServiceImpl implements BasicCorpService { } return false; } + + @Override + public List getCorpLists() { + return basicCorpDao.getCorpLists(); + } } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java index 7ba10f5f0..8c5d071cb 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicHospTypeServiceImpl.java @@ -8,7 +8,6 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicHospTypeDao; import com.glxp.api.dao.basic.UdiRelevanceDao; import com.glxp.api.entity.basic.BasicHospTypeEntity; -import com.glxp.api.entity.basic.BasicHospTypeRelEntity; import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.req.basic.BasicHospTypeFilterRequest; import com.glxp.api.req.basic.BasicHospTypeRequest; @@ -203,6 +202,20 @@ public class BasicHospTypeServiceImpl extends ServiceImpl filterUdiGpexist(FilterUdiRelRequest filterUdiRelRequest) { + if (filterUdiRelRequest == null) { + return Collections.emptyList(); + } + if (filterUdiRelRequest.getPage() != null) { + int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit(); + PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit()); + } + + List data = udiRelevanceDao.filterUdiGpexist(filterUdiRelRequest); + return data; + } + @Override public Boolean checkName(BasicHospTypeRequest basicHospTypeRequest, Integer type) { Long sum = null; 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 e1c3137c5..f39684883 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -40,4 +40,6 @@ public interface IoCodeTempService { List findCodeList(FilterCodeRequest filterCodeRequest); boolean isExit(String orderId); + + Integer selectExitCount(String orderId, String bacthNo, Long relId, String supId); } 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 c35f1b330..7247a3507 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -134,7 +134,7 @@ public class IoGenInvService { //生成库存产品表 for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { - InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(),orderEntity.getCreateUser(),ConstantStatus.ACTION_TYPE_NORMAL); + InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCreateUser(), ConstantStatus.ACTION_TYPE_NORMAL); if (invUserProductEntity == null) { invUserProductEntity = new InvUserProductEntity(); invUserProductEntity.setRelIdFk(orderDetailResultEntity.getBindRlFk()); @@ -185,7 +185,6 @@ public class IoGenInvService { } - @Resource InvPreProductService invPreProductService; @Resource @@ -260,7 +259,7 @@ public class IoGenInvService { //生成库存产品表 for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { - InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(),orderEntity.getCreateUser(),ConstantStatus.ACTION_TYPE_PREIN); + InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCreateUser(), ConstantStatus.ACTION_TYPE_PREIN); if (invUserProductEntity == null) { invUserProductEntity = new InvUserProductEntity(); invUserProductEntity.setRelIdFk(orderDetailResultEntity.getBindRlFk()); @@ -312,7 +311,6 @@ public class IoGenInvService { } - @Resource InvPreinProductService invPreinProductService; @@ -381,7 +379,11 @@ public class IoGenInvService { invProductDetailEntity.setRelId(codeEntity.getRelId()); invProductDetailEntity.setUpdateTime(new Date()); invProductDetailEntity.setId(null); - invProductDetailEntity.setInvSpaceCode(codeEntity.getPreInSpaceCode()); + if (StrUtil.isNotEmpty(codeEntity.getPreInSpaceCode())) { + invProductDetailEntity.setInvSpaceCode(codeEntity.getPreInSpaceCode()); + } else { + invProductDetailEntity.setInvSpaceCode(codeEntity.getWarehouseCode()); + } invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON); if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { invProductDetailEntity.setInCount(invProductDetailEntity.getReCount()); @@ -405,7 +407,7 @@ public class IoGenInvService { List codeEnttities = codeService.findByOrderId(orderId); //生成库存产品表 for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { - InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(),orderEntity.getCreateUser(),ConstantStatus.ACTION_TYPE_ADVANCE); + InvUserProductEntity invUserProductEntity = invUserProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCreateUser(), ConstantStatus.ACTION_TYPE_ADVANCE); if (invUserProductEntity == null) { invUserProductEntity = new InvUserProductEntity(); invUserProductEntity.setRelIdFk(orderDetailResultEntity.getBindRlFk()); diff --git a/src/main/java/com/glxp/api/service/inout/PlatformService.java b/src/main/java/com/glxp/api/service/inout/PlatformService.java new file mode 100644 index 000000000..7b598b769 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/PlatformService.java @@ -0,0 +1,117 @@ +package com.glxp.api.service.inout; + + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.entity.inout.UnitMaintainPlatformEntity; +import com.glxp.api.entity.system.PlatformEntity; +import com.glxp.api.req.inout.PlatformLinkRequest; +import com.glxp.api.res.inout.PlatformLinkResponse; + +import java.util.List; +import java.util.Map; + +public interface PlatformService { + + + public int save(PlatformEntity platformEntity); + + public int remove(String id); + + public BaseResponse update(PlatformEntity platformEntity); + + List list(Map map); + + int count(Map map); + + PlatformEntity get(String id); + + /** + * 查询往来单位和自助平台关联数据 + * + * @param platformLinkRequest + * @return + */ + List getLinkPlatformList(PlatformLinkRequest platformLinkRequest); + + /** + * 往来单位和自助平台解绑 + * + * @param id + */ + void unbindPlatform(String id); + + /** + * 获取自助平台单据类型 + * + * @param platformId + * @return + */ + BaseResponse getTargetActions(String platformId, String invSubCode,String apiKey,String apiSecret); + + + //获取自助平台一级仓库 + BaseResponse getTargetInv(String platformId,String apiKey,String apiSecret); + + + //获取自助平台一级仓库所属分库 + BaseResponse getTargetSubInv(String platformId, String invCode,String apiKey,String apiSecret); + + /** + * 测试自助平台连通性 + * + * @param host + * @return + */ + BaseResponse testPlatformConnection(String host); + + /** + * 根据ID查询自助平台信息 + * + * @param platformId + * @return + */ + PlatformEntity getPlatformById(String platformId); + + /** + * 保存医院客户关联关系 + * + * @param unitMaintainPlatform + */ + void saveUnitPlatform(UnitMaintainPlatformEntity unitMaintainPlatform); + + /** + * 校验关联数据 + * + * @param platformLinkRequest + * @return + */ + public String verifyUnitMaintainPlatform(PlatformLinkRequest platformLinkRequest); + + /** + * 查询关联数据 + * + * @param customerId + * @param action + * @param unitId + * @return + */ + UnitMaintainPlatformEntity findLinkData(long customerId, String action, String unitId); + + /** + * 获取客户关联详情 + * @param platformId + * @return + */ + List selectDelectList(PlatformLinkRequest platformLinkRequest); + + /** + * 上传单据到自助 + * + * @return + */ + BaseResponse uploadOrder(String orderId) throws JsonProcessingException; + + +} 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 ca44942ee..c9a743ae5 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 @@ -92,4 +92,14 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.exists(new QueryWrapper().eq("orderId", orderId)); } + @Override + public Integer selectExitCount(String orderId, String bacthNo, Long relId, String supId) { + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(orderId); + filterCodeRequest.setBatchNo(bacthNo); + filterCodeRequest.setRelId(relId + ""); + filterCodeRequest.setSupId(supId); + return ioCodeTempDao.selectExitCount(filterCodeRequest); + } + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/PlatformServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/PlatformServiceImpl.java new file mode 100644 index 000000000..4deeda1a7 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/PlatformServiceImpl.java @@ -0,0 +1,436 @@ +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 cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; + +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.pagehelper.PageHelper; + +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.dao.inout.*; +import com.glxp.api.entity.inout.*; +import com.glxp.api.entity.system.PlatformEntity; +import com.glxp.api.idc.service.FileService; +import com.glxp.api.req.inout.PlatformLinkRequest; +import com.glxp.api.res.inout.IoUploadOrderResponse; +import com.glxp.api.res.inout.PlatformLinkResponse; +import com.glxp.api.service.inout.*; +import com.glxp.api.util.OkHttpCli; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.apache.commons.lang3.StringUtils; +import org.apache.tools.ant.util.DateUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.concurrent.TimeUnit; + +@Slf4j +@Service +@Transactional(rollbackFor = Exception.class) +public class PlatformServiceImpl implements PlatformService { + + @Resource + private PlatformDao platformDao; + @Resource + private UnitMaintainPlatformDao unitMaintainPlatformDao; + @Resource + private OkHttpCli okHttpCli; + @Resource + IoOrderService ioOrderService; + @Resource + IoOrderDetailCodeService ioOrderDetailCodeService; + @Resource + IoCodeTempService ioCodeTempService; + @Resource + IoOrderDetailBizDao ioOrderDetailBizDao; + @Resource + IoOrderDetailResultDao ioOrderDetailResultDao; + @Resource + IoOrderInvoiceMapper ioOrderInvoiceMapper; + @Value("${file_path}") + private String filePath; + @Value("${API_KEY}") + private String apiKey; + @Value("${API_SECRET}") + private String apiSecret; + + public int save(PlatformEntity platformEntity) { + if (StringUtils.isEmpty(platformEntity.getId())) { + platformEntity.setId(String.valueOf(IdUtil.getSnowflake().nextId())); + } + return platformDao.insert(platformEntity); + } + + public int remove(String id) { + return platformDao.deleteById(id); + } + + public BaseResponse update(PlatformEntity platformEntity) { + if (StrUtil.isBlank(platformEntity.getId())) { + if (!verifyPlatformExist(platformEntity)) { + save(platformEntity); + return ResultVOUtils.success("添加成功"); + } else { + return ResultVOUtils.error(500, "已存在相同数据"); + } + } + platformDao.updateById(platformEntity); + return ResultVOUtils.success("更新成功"); + } + + private boolean verifyPlatformExist(PlatformEntity platformEntity) { + //校验名称和地址是否重复 + List list = platformDao.selectByNameAndHost(platformEntity.getName(), platformEntity.getHost()); + if (CollUtil.isEmpty(list)) { + return false; + } + return true; + } + + public List list(Map map) { + if (map.get("page") != null && map.get("limit") != null) { + Integer page = Integer.valueOf(String.valueOf(map.get("page"))); + Integer limit = Integer.valueOf(String.valueOf(map.get("limit"))); + PageHelper.offsetPage((page - 1) * limit, limit); + } + List list = platformDao.selectList(String.valueOf(map.get("id")), String.valueOf(map.get("name")), String.valueOf(map.get("host"))); + return list; + } + + public int count(Map map) { + return platformDao.count(map); + } + + public PlatformEntity get(String id) { + return platformDao.get(id); + } + + /** + * 查询往来单位和自助平台关联数据 + * + * @param platformLinkRequest + * @return + */ + public List getLinkPlatformList(PlatformLinkRequest platformLinkRequest) { + if (null == platformLinkRequest) { + return Collections.emptyList(); + } + if (null != platformLinkRequest.getPage() && null != platformLinkRequest.getLimit()) { + PageHelper.offsetPage((platformLinkRequest.getPage() - 1) * platformLinkRequest.getLimit(), platformLinkRequest.getLimit()); + } + return unitMaintainPlatformDao.getLinkPlatformList(platformLinkRequest.getCustomerId(), platformLinkRequest.getKey()); + } + + /** + * 往来单位和自助平台解绑 + * + * @param id + */ + public void unbindPlatform(String id) { + unitMaintainPlatformDao.deleteById(id); + } + + /** + * 获取自助平台单据类型 + * + * @param platformId + * @return + */ + public BaseResponse getTargetActions(String platformId, String invSubCode, String apiKey, String apiSecret) { + PlatformEntity platformEntity = platformDao.get(platformId); + if (null == platformEntity) { + return ResultVOUtils.success(); + } + String host = platformEntity.getHost(); + Map paramMap = new HashMap<>(); + paramMap.put("invSubCode", invSubCode); + String resp = okHttpCli.doGet(host + "/udiwms/bussinessType/udimsFilter", paramMap, buildHeader(apiKey, apiSecret)); + if (StrUtil.isNotBlank(resp) && resp.contains("20000")) { + return JSON.parseObject(resp, BaseResponse.class); + } else { + log.error("获取自助平台单据类型异常"); + return ResultVOUtils.error(500, "获取自助平台接口异常"); + } + } + + //获取自助平台一级仓库 + public BaseResponse getTargetInv(String platformId, String apiKey, String apiSecret) { + PlatformEntity platformEntity = platformDao.get(platformId); + if (null == platformEntity) { + return ResultVOUtils.success(); + } + String host = platformEntity.getHost(); + String url = host + "/spms/inv/warehouse/filterInv/forUdims"; + log.info("拉取自助平台仓库数据:" + url); + String resp = okHttpCli.doGet(url, buildHeader(apiKey, apiSecret)); + log.info("拉取结果:" + resp); + if (StrUtil.isNotBlank(resp) && resp.contains("20000")) { + try { + return JSON.parseObject(resp, BaseResponse.class); + } catch (Exception e) { + log.error("格式化自助平台仓库信息异常", e); + return ResultVOUtils.error(500, "调用自助平台接口异常"); + } + } else { + log.error("获取自助平台仓库失败"); + return ResultVOUtils.error(500, "调用自助平台接口异常"); + } + } + + + //获取自助平台一级仓库所属分库 + public BaseResponse getTargetSubInv(String platformId, String invCode, String apiKey, String apiSecret) { + PlatformEntity platformEntity = platformDao.get(platformId); + if (null == platformEntity) { + return ResultVOUtils.success(); + } + String host = platformEntity.getHost(); + Map paramMap = new HashMap<>(); + paramMap.put("invCode", invCode); + String resp = okHttpCli.doGet(host + "/spms/sub/inv/warehouse/getSubInvForUdims", paramMap, buildHeader(apiKey, apiSecret)); + if (StrUtil.isNotBlank(resp) && resp.contains("20000")) { + return JSON.parseObject(resp, BaseResponse.class); + } else { + log.error("获取自助平台分库失败"); + return ResultVOUtils.error(500, "获取自助平台接口异常"); + } + } + + /** + * 测试自助平台连通性 + * + * @param host + * @return + */ + public BaseResponse testPlatformConnection(String host) { + String testUrl = host + "/udiwms/auth/device/connect"; + String response = HttpUtil.get(testUrl); + if (StrUtil.isNotBlank(response)) { + try { + BaseResponse result = JSONUtil.toBean(response, BaseResponse.class); + if (result.getCode() == 20000) { + return ResultVOUtils.success(); + } + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } catch (Exception e) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + } else { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + } + + /** + * 根据ID查询自助平台信息 + * + * @param platformId + * @return + */ + public PlatformEntity getPlatformById(String platformId) { + return platformDao.selectById(platformId); + } + + /** + * 保存医院客户关联关系 + * + * @param unitMaintainPlatformEntity + */ + public void saveUnitPlatform(UnitMaintainPlatformEntity unitMaintainPlatformEntity) { + if (null != unitMaintainPlatformEntity.getId()) { + unitMaintainPlatformDao.updateById(unitMaintainPlatformEntity); + } else { + unitMaintainPlatformDao.insert(unitMaintainPlatformEntity); + } + + //更新当前客户关联数据的所有key + List list = unitMaintainPlatformDao.selectByCustomerId(unitMaintainPlatformEntity.getCustomerId()); + if (CollUtil.isNotEmpty(list)) { + for (UnitMaintainPlatformEntity maintainPlatform : list) { + maintainPlatform.setAppid(unitMaintainPlatformEntity.getAppid()); + maintainPlatform.setApiKey(unitMaintainPlatformEntity.getApiKey()); + maintainPlatform.setSecretKey(unitMaintainPlatformEntity.getSecretKey()); + unitMaintainPlatformDao.updateById(maintainPlatform); + } + } + + } + + @Override + public String verifyUnitMaintainPlatform(PlatformLinkRequest platformLinkRequest) { + List list = unitMaintainPlatformDao.selectList(platformLinkRequest); + if (CollUtil.isEmpty(list)) { + return "success"; + } else { + for (UnitMaintainPlatformEntity maintainPlatform : list) { + if (maintainPlatform.getId().equals(platformLinkRequest.getId())) { + return "success"; + } else { + return "重复添加"; + } + } + } + return "重复添加"; + } + + /** + * 查询关联数据 + * + * @param customerId + * @param action + * @param unitId + * @return + */ + public UnitMaintainPlatformEntity findLinkData(long customerId, String action, String unitId) { + return unitMaintainPlatformDao.findLinkData(customerId, action, unitId); + } + + @Override + public List selectDelectList(PlatformLinkRequest platformLinkRequest) { + if (null == platformLinkRequest) { + return Collections.emptyList(); + } + if (null != platformLinkRequest.getPage() && null != platformLinkRequest.getLimit()) { + PageHelper.offsetPage((platformLinkRequest.getPage() - 1) * platformLinkRequest.getLimit(), platformLinkRequest.getLimit()); + } + return unitMaintainPlatformDao.selectDelectList(platformLinkRequest.getPlatformId()); + } + + @Override + public BaseResponse uploadOrder(String orderId) throws JsonProcessingException { + + //查询单据信息 + IoOrderEntity ioOrderEntity = ioOrderService.findByBillNo(orderId); + if (ioOrderEntity == null) { + return ResultVOUtils.error(999, "该单据不存在!"); + } + //查询客户关联信息 + PlatformLinkResponse platformLinkRespons = unitMaintainPlatformDao.selectByUnitld(ioOrderEntity.getFromCorp()); + if(platformLinkRespons == null){ + return ResultVOUtils.error(999, "该单没有设置补单条件!"); + } + //获取单据详情 + List ioOrderDetailCodeEntityList=ioOrderDetailCodeService.findByOrderId(orderId); + List ioCodeTempEntityList = ioCodeTempService.findByOrderId(orderId); + for (IoCodeTempEntity ioCodeTempEntity : ioCodeTempEntityList) { + Map jsonMap = new HashMap<>(); + jsonMap.put("code", ioCodeTempEntity.getCode()); + ObjectMapper mapper = new ObjectMapper(); + String json = mapper.writeValueAsString(jsonMap); + ioCodeTempEntity.setCode(json); + } + //获取业务单 + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderIdFk",orderId); + List ioOrderDetailBizEntityList=ioOrderDetailBizDao.selectList(ew); + + //获取结果单 + QueryWrapper ew1=new QueryWrapper<>(); + ew1.eq("orderIdFk",orderId); + List ioOrderDetailResultEntityList=ioOrderDetailResultDao.selectList(ew1); + + //获取发票 + QueryWrapper ew2=new QueryWrapper<>(); + ew2.eq("orderIdFk",orderId); + List ioOrderInvoiceEntityList=ioOrderInvoiceMapper.selectList(ew2); + ArrayList list=new ArrayList<>(); + for (IoOrderInvoiceEntity ioOrderInvoiceEntity : ioOrderInvoiceEntityList) { + if(StrUtil.isNotBlank(ioOrderInvoiceEntity.getLicenseUrl())){ + list.add(filePath + "/register/image2/" + ioOrderInvoiceEntity.getLicenseUrl()); + ioOrderInvoiceEntity.setLicenseUrl("as" + ioOrderInvoiceEntity.getLicenseUrl()); + } + } + relayFile(list,platformLinkRespons.getHost()); + + //组装数据 + String host = platformLinkRespons.getHost(); + IoUploadOrderResponse ioUploadOrderResponse=new IoUploadOrderResponse(); + ioUploadOrderResponse.setIoOrderEntity(ioOrderEntity); + ioUploadOrderResponse.setPlatformLinkRespons(platformLinkRespons); + ioUploadOrderResponse.setIoCodeTempEntityList(ioCodeTempEntityList); + ioUploadOrderResponse.setIoOrderDetailCodeEntityList(ioOrderDetailCodeEntityList); + ioUploadOrderResponse.setIoOrderDetailResultEntityList(ioOrderDetailResultEntityList); + ioUploadOrderResponse.setIoOrderDetailBizEntityList(ioOrderDetailBizEntityList); + ioUploadOrderResponse.setIoOrderInvoiceEntityList(ioOrderInvoiceEntityList); + String resp = okHttpCli.doPostJson(host + "/spms/sub/inv/warehouse/addOrder", + JSON.toJSONString(ioUploadOrderResponse), buildHeader(platformLinkRespons.getAppid(), platformLinkRespons.getSecretKey())); + //回调结果 返回信息 + if (StrUtil.isNotBlank(resp) && resp.contains("20000")) { + return JSON.parseObject(resp, BaseResponse.class); + } else { + log.error("获取自助平台分库失败"); + return ResultVOUtils.error(500, "获取自助平台接口异常"); + } + } + + public String[] buildHeader(String apiKey, String apiSecret) { + String[] headers = {"api_key", apiKey, "secret_key", apiSecret}; + return headers; + } + + + /*转发图片*/ + private String relayFile(ArrayList files, String ip) { + String host = ip; + String result = ""; + + if (!StringUtils.isEmpty(host)) { + host += "/udiwms/file/uploadFile"; + OkHttpClient client = new OkHttpClient().newBuilder() + .connectTimeout(30, TimeUnit.SECONDS)//设置连接超时时间 + .readTimeout(30, TimeUnit.SECONDS)//设置读取超时时间 + .build(); + MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); + + MultipartBody.Builder builder = new MultipartBody.Builder(); + builder.setType(MultipartBody.FORM); + String fileType = "application/octet-stream"; + if (files != null && files.size() > 0) { + for (int i = 0; i < files.size(); i++) { + if (!StringUtils.isEmpty(files.get(i))) { + File file = new File(files.get(i)); + String fileName = files.get(i); + fileName = "as"+ fileName.substring(fileName.lastIndexOf("/")+1); + builder.addFormDataPart("files", fileName, + RequestBody.create(MediaType.parse(fileType), file)); + } + } + } + + RequestBody body = builder.build(); + + Request req = new Request.Builder() + .url(host) + .method("POST", body) + .addHeader("Content-Type", "application/x-www-form-urlencoded") + .addHeader("format", "json") + .addHeader("apiKey", apiKey) + .addHeader("secretKey", apiSecret) + .addHeader("timestamp", DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")) + .addHeader("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type, Accept") + .build(); + try { + Response response = client.newCall(req).execute(); + result = response.body().string(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + return result; + } + +} diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 2dcc0989d..61fdbc44a 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -21,8 +21,8 @@ import javax.annotation.Resource; import java.util.Arrays; -@Component -@EnableScheduling +//@Component +//@EnableScheduling public class SyncHeartTask implements SchedulingConfigurer { final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index 45d7ec404..d9d212812 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -34,7 +34,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; @Component -@EnableScheduling +//@EnableScheduling @Slf4j public class SyncThirdSysTask implements SchedulingConfigurer { diff --git a/src/main/java/com/glxp/api/util/MultipartFileTest.java b/src/main/java/com/glxp/api/util/MultipartFileTest.java new file mode 100644 index 000000000..a3f32642c --- /dev/null +++ b/src/main/java/com/glxp/api/util/MultipartFileTest.java @@ -0,0 +1,79 @@ +package com.glxp.api.util; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileItemFactory; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.MediaType; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; + + +import java.io.*; + +public class MultipartFileTest { + + private static final Logger log = LoggerFactory.getLogger(MultipartFileTest.class); + + private MultipartFileTest() { } + + + public static void main(String[] args) { + // 本地文件转为MultipartFile类型 + String fileName="D:\\1s\\a6294b6b58de15136bb827dd1efdc76.jpg"; + fileName = fileName.substring(fileName.lastIndexOf("/")); + } + + public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { + FileItem fileItem = createFileItem(inputStream, fileName); + return new CommonsMultipartFile(fileItem); + } + + + public static MultipartFile[] getMultipartFiles(InputStream[] inputStream, String fileName) { + // 多文件转换 + int length = inputStream.length; + MultipartFile[] multipartFiles = new MultipartFile[length]; + for (int i = 0; i < length; i++) { + FileItem fileItem = createFileItem(inputStream[i], fileName); + multipartFiles[i] = new CommonsMultipartFile(fileItem); + } + return multipartFiles; + } + + + public static FileItem createFileItem(InputStream inputStream, String fileName) { + FileItemFactory factory = new DiskFileItemFactory(16, null); + FileItem fileItem = factory.createItem("file", MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); + int read = 0; + OutputStream os = null; + byte[] buffer = new byte[10 * 1024 * 1024]; + try { + os = fileItem.getOutputStream(); + while ((read = inputStream.read(buffer, 0, 4096)) != -1) { + os.write(buffer, 0, read); + } + inputStream.close(); + } catch (IOException e) { + log.error("os write exception", e); + throw new IllegalArgumentException("文件流输出失败"); + } finally { + if (os != null) { + try { + os.close(); + } catch (IOException e) { + log.error("stream os close exception", e); + } + } + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + log.error("stream inputStream close exception", e); + } + } + } + return fileItem; + } +} diff --git a/src/main/java/com/glxp/api/util/OkHttpCli.java b/src/main/java/com/glxp/api/util/OkHttpCli.java index 25bc943a1..a853f71dc 100644 --- a/src/main/java/com/glxp/api/util/OkHttpCli.java +++ b/src/main/java/com/glxp/api/util/OkHttpCli.java @@ -117,6 +117,7 @@ public class OkHttpCli { } + /** * post 请求, 请求数据为 json 的字符串 * diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 97dfa2620..a87e0a10b 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/wms_cs?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?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: @@ -54,3 +54,4 @@ SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs back_file_path: D:/share/udisps/back/ API_KEY: 1101 API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L +WEB_TITLE: 平潭协和医院 diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index b88f18fc4..d0e3e25a6 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -51,5 +51,6 @@ SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs back_file_path: D:/share/udisps/back/ API_KEY: 1101 API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L +WEB_TITLE: 平潭协和医院 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 43279dcb4..a4c2e52f6 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -50,4 +50,5 @@ UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs API_KEY: 1101 API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L +WEB_TITLE: 平潭协和医院 diff --git a/src/main/resources/application-wmd.yml b/src/main/resources/application-wmd.yml index e0ec69b11..f1a701c48 100644 --- a/src/main/resources/application-wmd.yml +++ b/src/main/resources/application-wmd.yml @@ -51,5 +51,6 @@ SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs back_file_path: D:/share/udisps/back/ API_KEY: 1101 API_SECRET: zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L +WEB_TITLE: 平潭协和医院 diff --git a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml index 9644c13e2..83ac4e605 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicCorpDao.xml @@ -343,4 +343,11 @@ WHERE erpId NOT IN (SELECT customerId FROM sup_company) AND corpType = 2; + + diff --git a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml index 5a6b4057c..4378d441b 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicProductCategoryRelMapper.xml @@ -67,6 +67,12 @@ and basic_products.originUuid = #{originUuid} + + and basic_udirel.id not in + + #{item} + + diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index dade4df0c..7922dae50 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -283,6 +283,30 @@ AND basic_corp.name like concat('%', #{companyName}, '%') + + AND basic_products.basicPrductRemak1 like concat('%', #{basicPrductRemak1}, '%') + + + AND basic_products.basicPrductRemak2 like concat('%', #{basicPrductRemak2}, '%') + + + AND basic_products.basicPrductRemak3 like concat('%', #{basicPrductRemak3}, '%') + + + AND basic_products.basicPrductRemak4 like concat('%', #{basicPrductRemak4}, '%') + + + AND basic_products.basicPrductRemak5 like concat('%', #{basicPrductRemak5}, '%') + + + AND basic_products.basicPrductRemak6 like concat('%', #{basicPrductRemak6}, '%') + + + AND basic_products.basicPrductRemak7 like concat('%', #{basicPrductRemak7}, '%') + + + AND basic_products.basicPrductRemak8 like concat('%', #{basicPrductRemak8}, '%') + @@ -461,6 +485,188 @@ ORDER BY modifyTime DESC + + + select *, (select `name` from basic_corp where erpId = io_code_temp.supId) supName @@ -16,5 +15,22 @@ - - \ No newline at end of file + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index aa1e90cbc..5e417cb01 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -15,6 +15,9 @@ (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 + + INNER JOIN io_unit_maintain_platform a2 on io.action = a2.sourceAction AND io.fromCorp = a2.unitId + AND id = #{id} @@ -42,7 +45,7 @@ AND deptCode = #{deptCode} - AND invCode = #{invCode} + AND io.invCode = #{invCode} AND busType = #{busType} diff --git a/src/main/resources/mybatis/mapper/inout/PlatformDao.xml b/src/main/resources/mybatis/mapper/inout/PlatformDao.xml new file mode 100644 index 000000000..0499e086c --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/PlatformDao.xml @@ -0,0 +1,106 @@ + + + + + + replace into auth_platform + (id, name, host) + values + + (#{item.id}, #{item.name,jdbcType=VARCHAR}, #{item.host,jdbcType=VARCHAR}) + + + + + + + + + + + + + + + insert into auth_platform(id, name, host) + VALUES (#{id}, #{name}, #{host}) + + + + + + delete + from auth_platform + where id = #{id} + + + + update auth_platform + + + name = #{name}, + + + host = #{host}, + + + where id = #{id} + + diff --git a/src/main/resources/mybatis/mapper/inout/UnitMaintainPlatformDao.xml b/src/main/resources/mybatis/mapper/inout/UnitMaintainPlatformDao.xml new file mode 100644 index 000000000..cf1c52b7e --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/UnitMaintainPlatformDao.xml @@ -0,0 +1,188 @@ + + + + + + + + + update io_unit_maintain_platform + + + unitId = #{unitId}, + + + customerId = #{customerId}, + + + platformId = #{platformId}, + + + sourceAction = #{sourceAction}, + + + targetAction = #{targetAction}, + + + invCode = #{invCode}, + + + invSubCode = #{invSubCode}, + + + appid = #{appid}, + + + apiKey = #{apiKey}, + + + secretKey = #{secretKey}, + + + invName = #{invName}, + + + invSubName = #{invSubName}, + + + targetName = #{targetName} + + + where id = #{id} + + + + insert into io_unit_maintain_platform (unitId, customerId, platformId, sourceAction, targetAction, invCode, + invSubCode, appid, apiKey, secretKey, invName, invSubName, targetName) + VALUES (#{unitId}, #{customerId}, #{platformId}, #{sourceAction}, #{targetAction}, #{invCode}, #{invSubCode}, + #{appid}, #{apiKey}, #{secretKey}, #{invName}, #{invSubName}, #{targetName}) + + + + + + + + delete + from io_unit_maintain_platform + where id = #{id} + + + + + + + + \ No newline at end of file