From f7d09c1ec4287579ac35e044d4d6ac67f23fbc70 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 24 May 2023 17:52:33 +0800 Subject: [PATCH 01/32] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9B=B8=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thrsys/ThrProductsController.java | 10 +- .../com/glxp/api/http/ErpBasicClient.java | 5 +- .../req/thrsys/FilterThrProductsRequest.java | 16 + .../service/thrsys/ThrProductsService.java | 8 + .../impl/ThrBusTypeOriginServiceImpl.java | 4 +- .../impl/ThrInvWarehouseServiceImpl.java | 2 +- .../thrsys/impl/ThrProductsServiceImpl.java | 44 ++- .../com/glxp/api/task/SyncThirdSysTask.java | 331 ++++++++++++++++++ .../glxp/api/task/ThirdSysInterfaceTask.java | 4 +- .../mapper/thrsys/ThrInvWarehouseDao.xml | 92 +++-- src/main/resources/schemas/schema_v2.1.sql | 34 +- 11 files changed, 494 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/glxp/api/task/SyncThirdSysTask.java 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 15d2e4e70..97066c999 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java @@ -1,6 +1,8 @@ package com.glxp.api.controller.thrsys; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.IdUtil; @@ -249,10 +251,12 @@ public class ThrProductsController { if (null == filterThrProductsRequest) { return ResultVOUtils.error(500, "参数不能为空"); } + + ThreadUtil.execAsync(() -> { - erpBasicClient.getErpProducts(filterThrProductsRequest); + thrProductsService.downloadByRequest(filterThrProductsRequest); }); - return ResultVOUtils.success(); + return ResultVOUtils.success("后台正在下载,请稍后刷新查看!"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index b06b8a211..436d5ec0c 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -43,7 +43,7 @@ public class ErpBasicClient { UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest(); BeanUtils.copyProperties(thrUnitMaintainFilterRequest, udiwmsUnitRequest); udiwmsUnitRequest.setUnitId(thrUnitMaintainFilterRequest.getErpId()); - ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thrUnitMaintainFilterRequest.getThirdSys()); + ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thrUnitMaintainFilterRequest.getThirdSysFk()); try { String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/getUnits"; @@ -64,9 +64,8 @@ public class ErpBasicClient { //获取产品信息 public BaseResponse> getErpProducts(FilterThrProductsRequest filterThrProductsRequest) { - ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterThrProductsRequest.getThirdSys()); + ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterThrProductsRequest.getThirdSysFk()); String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getProducts"; - try { String response = httpOkClient.uCloudPost(url, filterThrProductsRequest, basicThirdSysEntity); if (StrUtil.isBlank(response)) { diff --git a/src/main/java/com/glxp/api/req/thrsys/FilterThrProductsRequest.java b/src/main/java/com/glxp/api/req/thrsys/FilterThrProductsRequest.java index 70ddf3fab..f8a1ca559 100644 --- a/src/main/java/com/glxp/api/req/thrsys/FilterThrProductsRequest.java +++ b/src/main/java/com/glxp/api/req/thrsys/FilterThrProductsRequest.java @@ -1,6 +1,7 @@ package com.glxp.api.req.thrsys; +import cn.hutool.core.util.StrUtil; import com.glxp.api.entity.thrsys.ThrProductsEntity; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; @@ -34,5 +35,20 @@ public class FilterThrProductsRequest extends ListPageRequest { private String uuid; private Integer diType; + public List getThrProductsEntities() { + return thrProductsEntities; + } + public String getThirdSys() { + if (StrUtil.isEmpty(thirdSys)) + return thirdSysFk; + return thirdSys; + } + + public String getThirdSysFk() { + + if (StrUtil.isEmpty(thirdSysFk)) + return thirdSys; + return thirdSysFk; + } } diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java b/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java index 593052c2d..f9ac1ad55 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java @@ -66,4 +66,12 @@ public interface ThrProductsService extends IService { * @return */ BaseResponse downloadThrPi(ThrSystemDetailEntity thrSystemDetailEntity); + + /** + * 下载第三方产品信息 + * + * @param filterThrProductsRequest + * @return + */ + BaseResponse downloadByRequest(FilterThrProductsRequest filterThrProductsRequest); } diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrBusTypeOriginServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrBusTypeOriginServiceImpl.java index 3842bf90e..6ab0a2ab9 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrBusTypeOriginServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrBusTypeOriginServiceImpl.java @@ -34,7 +34,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor = Exception.class) -public class ThrBusTypeOriginServiceImpl extends ServiceImpl implements IThrBusTypeOriginService { +public class ThrBusTypeOriginServiceImpl extends ServiceImpl implements IThrBusTypeOriginService { @Resource private CustomerService customerService; @@ -180,7 +180,7 @@ public class ThrBusTypeOriginServiceImpl extends ServiceImpl list = baseResponse.getData().getList(); list.forEach(item -> { - ThrBusTypeOriginEntity thrBusTypeOriginEntity = thrBusTypeOriginDao.selectOne(new QueryWrapper().eq("code", item.getCode()).eq("thirdSys", thrSystemDetailEntity.getThirdSysFk())); + ThrBusTypeOriginEntity thrBusTypeOriginEntity = thrBusTypeOriginDao.selectOne(new QueryWrapper().eq("action", item.getCode()).eq("thirdSys", thrSystemDetailEntity.getThirdSysFk())); if (null == thrBusTypeOriginEntity) { thrBusTypeOriginEntity = new ThrBusTypeOriginEntity(); BeanUtil.copyProperties(item, thrBusTypeOriginEntity); diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvWarehouseServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvWarehouseServiceImpl.java index 24970bcb4..c9bb116db 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvWarehouseServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrInvWarehouseServiceImpl.java @@ -29,7 +29,7 @@ import java.util.List; @Slf4j @Service @Transactional(rollbackFor = Exception.class) -public class ThrInvWarehouseServiceImpl extends ServiceImpl implements ThrInvWarehouseService { +public class ThrInvWarehouseServiceImpl extends ServiceImpl implements ThrInvWarehouseService { @Resource private ThrInvWarehouseDao thrInvWarehouseDao; diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index c6eac8d44..45e4bd45f 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -176,7 +176,6 @@ public class ThrProductsServiceImpl extends ServiceImpl> baseResponse = erpBasicClient.getErpProducts(request); if (baseResponse.getCode() == 20000) { List list = baseResponse.getData().getList(); @@ -192,7 +191,7 @@ public class ThrProductsServiceImpl extends ServiceImpl> baseResponse = erpBasicClient.getErpProducts(filterThrProductsRequest); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + list.forEach(item -> { + ThrProductsEntity thrProductsEntity = thrProductsDao.selectByCodeAndThird(item.getCode(), item.getThirdSys()); + if (null == thrProductsEntity) { + thrProductsEntity = new ThrProductsEntity(); + BeanUtil.copyProperties(item, thrProductsEntity); + thrProductsEntity.setCreateTime(new Date()); + thrProductsEntity.setUpdateTime(new Date()); + thrProductsEntity.setId(IdUtil.getSnowflakeNextId()); + thrProductsDao.insertThrProducts(thrProductsEntity); + } else { + boolean isChange = verifyDataChange(thrProductsEntity, item); + if (isChange) { + BeanUtil.copyProperties(item, thrProductsEntity, new CopyOptions().setIgnoreNullValue(true)); + thrProductsEntity.setUpdateTime(new Date()); + thrProductsDao.updateEntityById(thrProductsEntity); + } + } + }); + if (list.size() >= limit) { + page++; + } else { + break; + } + } else { + return ResultVOUtils.error(500, "下载第三方系统产品信息异常"); + } + } + return ResultVOUtils.success("下载成功"); + } + /** * 校验拉取的第三方数据是否有更新 * diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java new file mode 100644 index 000000000..d10c44f95 --- /dev/null +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -0,0 +1,331 @@ +package com.glxp.api.task; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.glxp.api.constant.ThirdSysConstant; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.dao.system.SyncDataSetDao; +import com.glxp.api.dao.thrsys.ThrSystemDetailDao; +import com.glxp.api.entity.system.ScheduledEntity; +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.util.RedisUtil; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; + +@Component +@EnableScheduling +@Slf4j +public class SyncThirdSysTask implements SchedulingConfigurer { + + /** + * redis key 前缀 + */ + private static final Map> keyMap = new ConcurrentHashMap<>(5); + + private volatile ExecutorService executor; + + @Resource + private RedisUtil redisUtil; + @Resource + private ThrSystemDetailDao thrSystemDetailDao; + @Resource + private ThrInvWarehouseService thrInvWarehouseService; + @Resource + private ThrCorpService thrCorpService; + @Resource + private ThrProductsService thrProductsService; + @Resource + private IThrBusTypeOriginService thrBusTypeOriginService; + @Resource + private IoOrderService orderService; + + + final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); + @Resource + protected ScheduledDao scheduledDao; + @Resource + private SyncDataSetDao syncDataSetDao; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("dlThrSysHeartTask"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + if (scheduledEntity != null) { + String cron = scheduledEntity.getCron(); + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + } else + return null; + + }); + } + + private ExecutorService getExecutor() { + if (null == executor) { + synchronized (this) { + log.info("初始化第三方系统接口执行线程池"); + executor = ThreadUtil.newExecutor(10, 100, Integer.MAX_VALUE); + } + } + return executor; + } + + + private void process() { + + log.info("开始扫描自动执行的第三方接口列表"); + List list = thrSystemDetailDao.selectAutoExecuteList(); + if (CollUtil.isNotEmpty(list)) { + log.info("本次查询到的接口列表数量:{}", list.size()); + list.parallelStream().forEach(thrSystemDetailEntity -> { + switch (thrSystemDetailEntity.getKey()) { + case ThirdSysConstant.WAREHOUSE_QUERY_URL: + //下载第三方仓库信息 + downloadThrInv(thrSystemDetailEntity); + break; + case ThirdSysConstant.CORP_URL: + //下载往来单位信息 + downloadThrCorp(thrSystemDetailEntity); + break; + case ThirdSysConstant.PI_QUERY_URL: + //下载第三方产品信息 + downloadThrPi(thrSystemDetailEntity); + break; + case ThirdSysConstant.BUS_TYPE_QUERY_URL: + //下载第三方单据类型 + downloadThrBusType(thrSystemDetailEntity); + break; + case ThirdSysConstant.ORDER_SUBMIT_URL: + //提交单据 + submitOrder(thrSystemDetailEntity); + break; + default: + //其他接口暂不处理 + break; + } + }); + } else { + log.info("未配置自动执行的第三方接口列表"); + } + } + + + /** + * 提交单据到第三方系统 + * + * @param thrSystemDetailEntity + */ + private void submitOrder(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始提交单据到第三方系统"); + try { + orderService.submitOrderToThrSys(thrSystemDetailEntity); + } catch (Exception e) { + log.error("提交单据到第三方系统异常", e); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("提交单据到第三方系统完成"); + }); + } + } + + /** + * 下载第三方单据类型 + * + * @param thrSystemDetailEntity + */ + private void downloadThrBusType(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载第三方单据类型"); + try { + thrBusTypeOriginService.downloadThrBusType(thrSystemDetailEntity); + } catch (Exception e) { + log.error("下载第三方单据类型异常", e); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("第三方单据类型下载完成"); + }); + } + } + + /** + * 下载第三方产品信息 + * + * @param thrSystemDetailEntity + */ + private void downloadThrPi(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载第三方产品信息"); + try { + thrProductsService.downloadThrPi(thrSystemDetailEntity); + } catch (Exception e) { + log.error("下载第三方产品信息异常", e); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("第三方产品信息下载完成"); + }); + } + } + + /** + * 下载第三方往来单位 + * + * @param thrSystemDetailEntity + */ + private void downloadThrCorp(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载第三方往来单位信息"); + try { + thrCorpService.downloadThrCorp(thrSystemDetailEntity); + } catch (Exception e) { + log.error("下载第三方往来单位异常", e); + } finally { + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("第三方往来单位信息下载完成"); + }); + } + } + + /** + * 下载第三方系统仓库 + * + * @param thrSystemDetailEntity + */ + private void downloadThrInv(ThrSystemDetailEntity thrSystemDetailEntity) { + //校验任务并更新redis数据执行标识 + if (verifyTask(thrSystemDetailEntity)) { + getExecutor().submit(() -> { + log.info("开始下载第三方仓库信息"); + try { + thrInvWarehouseService.downloadThrInv(thrSystemDetailEntity); + } catch (Exception e) { + log.error("下载第三方仓库信息异常", e); + } finally { + //保证任务标识一定会被修改回去 + updateTask(getTaskKey(thrSystemDetailEntity)); + } + log.info("第三方仓库信息下载完成"); + }); + } + } + + /** + * 更新任务状态为已完成 + * + * @param taskKey + */ + private void updateTask(String taskKey) { + ThirdSysInterfaceExecuteVo vo = getLastResult(taskKey); + vo.setFinished(true); + redisUtil.set(taskKey, vo); + } + + /** + * 校验当前任务是否可以执行 + * + * @param thrSystemDetailEntity + * @return + */ + private boolean verifyTask(ThrSystemDetailEntity thrSystemDetailEntity) { + String taskKey = getTaskKey(thrSystemDetailEntity); + ThirdSysInterfaceExecuteVo vo = getLastResult(taskKey); + if (null != vo && !vo.isFinished()) { + log.info("有任务尚未执行完成,当前任务key:{}", taskKey); + return false; + } + long nextTime = DateUtil.offsetMonth(new Date(), thrSystemDetailEntity.getTime()).getTime(); + if (vo != null) { + if (vo.getNextTime() - new Date().getTime() > thrSystemDetailEntity.getTime() * 1000 * 60) { + log.info("定时任务时间未到", taskKey); + return false; + } else { + return true; + } + } else { + vo = Optional.ofNullable(vo).orElse(new ThirdSysInterfaceExecuteVo()); + vo.setKey(taskKey); + vo.setNextTime(nextTime); + vo.setFinished(false); + redisUtil.set(taskKey, vo); + } + return true; + } + + /** + * 获取上一次执行结果 + * + * @param taskKey + * @return + */ + private ThirdSysInterfaceExecuteVo getLastResult(String taskKey) { + String json = redisUtil.getJSON(taskKey); + return StrUtil.isBlank(json) ? null : JSONUtil.toBean(json, ThirdSysInterfaceExecuteVo.class); + } + + /** + * 拼接redis Key + * + * @param thrSystemDetailEntity + * @return + */ + private String getTaskKey(ThrSystemDetailEntity thrSystemDetailEntity) { + String key = ""; + Map keys = keyMap.get(thrSystemDetailEntity.getThirdSysFk()); + if (CollUtil.isEmpty(keys)) { + Map map = new HashMap<>(1); + key = "thirdI:" + thrSystemDetailEntity.getThirdSysFk() + ":" + thrSystemDetailEntity.getKey(); + map.put(thrSystemDetailEntity.getKey(), key); + keyMap.put(thrSystemDetailEntity.getThirdSysFk(), map); + } else { + key = keys.get(thrSystemDetailEntity.getKey()); + if (StrUtil.isBlank(key)) { + key = "thirdI:" + thrSystemDetailEntity.getThirdSysFk() + ":" + thrSystemDetailEntity.getKey(); + Map map = new HashMap<>(1); + map.put(thrSystemDetailEntity.getKey(), key); + keyMap.put(thrSystemDetailEntity.getThirdSysFk(), map); + } + } + return key; + } + + +} diff --git a/src/main/java/com/glxp/api/task/ThirdSysInterfaceTask.java b/src/main/java/com/glxp/api/task/ThirdSysInterfaceTask.java index a190b23d6..803760533 100644 --- a/src/main/java/com/glxp/api/task/ThirdSysInterfaceTask.java +++ b/src/main/java/com/glxp/api/task/ThirdSysInterfaceTask.java @@ -29,7 +29,7 @@ import java.util.concurrent.ExecutorService; * 此任务负责校验第三方接口设置里的所有接口列表,并生成任务到线程池中异步执行 */ @Slf4j -@Component +//@Component public class ThirdSysInterfaceTask { /** @@ -69,7 +69,7 @@ public class ThirdSysInterfaceTask { @Resource private IoOrderService orderService; - @Scheduled(fixedRate = 20 * 1000, initialDelay = 60 * 1000) + @Scheduled(fixedRate = 1 * 1000, initialDelay = 60 * 1000) public void scanInterface() { log.info("开始扫描自动执行的第三方接口列表"); List list = thrSystemDetailDao.selectAutoExecuteList(); diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml index 2b0f0b502..6172d3bd8 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrInvWarehouseDao.xml @@ -41,27 +41,33 @@ - select * from thr_inv_warehouse where updateTime >= #{lastUpdateTime} + select * + from thr_inv_warehouse + where updateTime >= #{lastUpdateTime} diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 4de510174..61a3a9b51 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -444,9 +444,31 @@ CALL Pro_Temp_ColumnWork('io_code', 'preInSpaceCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('pur_order_detail', 'price', 'decimal(10, 2)', 1); -INSERT ignore INTO `sys_pdf_template_relevance_label`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (1, 30, 110, 0, 9, '内部码打印', NULL, NULL, NULL, NULL, 'lable'); -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (1, 31, 110, 0, NULL, '配送企业资质打印', NULL, NULL, NULL, NULL, 'reportForms'); -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (2, 32, 110, 0, NULL, '生产企业资质打印', NULL, NULL, NULL, NULL, 'reportForms'); -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (3, 33, 110, 0, NULL, '配送产品资质打印', NULL, NULL, NULL, NULL, 'reportForms'); -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (4, 33, 110, 0, NULL, '库存报表打印', NULL, NULL, NULL, NULL, 'reportForms'); -INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, `localAction`, `remark1`, `remark2`, `remark3`, `printType`, `modelKey`) VALUES (5, 33, 110, 0, NULL, '内部码报表打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT ignore INTO `sys_pdf_template_relevance_label`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (1, 30, 110, 0, 9, '内部码打印', NULL, NULL, NULL, NULL, 'lable'); +INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (1, 31, 110, 0, NULL, '配送企业资质打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (2, 32, 110, 0, NULL, '生产企业资质打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (3, 33, 110, 0, NULL, '配送产品资质打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (4, 33, 110, 0, NULL, '库存报表打印', NULL, NULL, NULL, NULL, 'reportForms'); +INSERT ignore INTO `sys_pdf_template_relevance_statemen`(`id`, `templateId`, `customerId`, `adminId`, `moduleId`, + `localAction`, `remark1`, `remark2`, `remark3`, `printType`, + `modelKey`) +VALUES (5, 33, 110, 0, NULL, '内部码报表打印', NULL, NULL, NULL, NULL, 'reportForms'); + + +INSERT ignore INTO `sys_scheduled`(`id`, `cronName`, `cron`, `customerId`, `remark`) +VALUES (140, 'dlThrSysHeartTask', '0 0/1 * * * ?', NULL, '第三方接口同步心跳'); From 6111d7c580729a472a867167f283110aea95b2dd Mon Sep 17 00:00:00 2001 From: wj <1285151836@qq.com> Date: Wed, 24 May 2023 19:27:42 +0800 Subject: [PATCH 02/32] =?UTF-8?q?insertIgnoreBatch/replaceBatch=E6=94=B9?= =?UTF-8?q?=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/dao/BaseMapperPlus.java | 67 +++++++++++++++++-- .../com/glxp/api/service/CustomService.java | 4 +- .../glxp/api/service/CustomServiceImpl.java | 8 +-- 3 files changed, 69 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/glxp/api/dao/BaseMapperPlus.java b/src/main/java/com/glxp/api/dao/BaseMapperPlus.java index 59eb52bd1..3d3a64bce 100644 --- a/src/main/java/com/glxp/api/dao/BaseMapperPlus.java +++ b/src/main/java/com/glxp/api/dao/BaseMapperPlus.java @@ -18,10 +18,7 @@ import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; import java.io.Serializable; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** * 自定义 Mapper 接口, 实现 自定义扩展 @@ -242,8 +239,39 @@ public interface BaseMapperPlus extends BaseMapper { * @param entityList 实体类列表 * @return 影响条数 */ + default boolean insertIgnoreBatchs(List entityList) { + return insertIgnoreBatchs(entityList, DEFAULT_BATCH_SIZE); + } + + default boolean insertIgnoreBatchs(List entityList, int batchSize) { + + try { + int size = entityList.size(); + int idxLimit = Math.min(DEFAULT_BATCH_SIZE, size); + int i = 1; + //保存单批提交的数据集合 + List oneBatchList = new ArrayList<>(); + for (Iterator var7 = entityList.iterator(); var7.hasNext(); ++i) { + T element = var7.next(); + oneBatchList.add(element); + if (i == idxLimit) { + + this.insertIgnoreBatch(oneBatchList); + //每次提交后需要清空集合数据 + oneBatchList.clear(); + idxLimit = Math.min(idxLimit + batchSize, size); + } + } + } catch (Exception e) { + log.error("insertIgnoreBatch fail", e); + return false; + } + return true; + } + int insertIgnoreBatch(List entityList); + /** * 替换数据 * replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; @@ -262,5 +290,36 @@ public interface BaseMapperPlus extends BaseMapper { * @param entityList 实体类列表 * @return 影响条数 */ + default boolean replaceBatchs(List entityList) { + return this.replaceBatchs(entityList, DEFAULT_BATCH_SIZE); + } + + default boolean replaceBatchs(List entityList, int batchSize) { + + try { + int size = entityList.size(); + int idxLimit = Math.min(DEFAULT_BATCH_SIZE, size); + int i = 1; + //保存单批提交的数据集合 + List oneBatchList = new ArrayList<>(); + for (Iterator var7 = entityList.iterator(); var7.hasNext(); ++i) { + T element = var7.next(); + oneBatchList.add(element); + if (i == idxLimit) { + + this.replaceBatch(oneBatchList); + //每次提交后需要清空集合数据 + oneBatchList.clear(); + idxLimit = Math.min(idxLimit + batchSize, size); + } + } + } catch (Exception e) { + log.error("insertIgnoreBatch fail", e); + return false; + } + return true; + } + int replaceBatch(List entityList); + } diff --git a/src/main/java/com/glxp/api/service/CustomService.java b/src/main/java/com/glxp/api/service/CustomService.java index 6f5771cab..f7e0cfe2f 100644 --- a/src/main/java/com/glxp/api/service/CustomService.java +++ b/src/main/java/com/glxp/api/service/CustomService.java @@ -6,7 +6,7 @@ import java.util.List; public interface CustomService extends IService { int insertIgnore(T entity); - int insertIgnoreBatch(List entityList); + boolean insertIgnoreBatch(List entityList); int replace(T entity); - int replaceBatch(List entityList); + boolean replaceBatch(List entityList); } diff --git a/src/main/java/com/glxp/api/service/CustomServiceImpl.java b/src/main/java/com/glxp/api/service/CustomServiceImpl.java index fbe971939..e180c9058 100644 --- a/src/main/java/com/glxp/api/service/CustomServiceImpl.java +++ b/src/main/java/com/glxp/api/service/CustomServiceImpl.java @@ -13,8 +13,8 @@ public class CustomServiceImpl, T> extends ServiceImpl entityList) { - return baseMapper.insertIgnoreBatch(entityList); + public boolean insertIgnoreBatch(List entityList) { + return baseMapper.insertIgnoreBatchs(entityList); } @Override @@ -23,7 +23,7 @@ public class CustomServiceImpl, T> extends ServiceImpl entityList) { - return baseMapper.replaceBatch(entityList); + public boolean replaceBatch(List entityList) { + return baseMapper.replaceBatchs(entityList); } } From 3e53fea186cb12a1f672635a22cc83fc10a8b50c Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 24 May 2023 20:21:14 +0800 Subject: [PATCH 03/32] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=B8=8B=E8=BD=BDbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/thrsys/ThrCorpsController.java | 41 +-- .../thrsys/ThrProductsController.java | 43 +-- .../com/glxp/api/http/ErpBasicClient.java | 8 +- .../thrsys/ThrUnitMaintainFilterRequest.java | 15 + .../glxp/api/service/sync/HeartService.java | 9 +- .../api/service/thrsys/ThrCorpService.java | 2 + .../api/service/thrsys/ThrCorpsDlService.java | 14 +- .../service/thrsys/ThrProductsService.java | 2 +- .../thrsys/impl/ThrCorpServiceImpl.java | 55 +++- .../thrsys/impl/ThrProductsServiceImpl.java | 12 +- .../glxp/api/task/ThirdSysInterfaceTask.java | 291 ------------------ .../mybatis/mapper/thrsys/ThrCorpDao.xml | 26 +- 12 files changed, 142 insertions(+), 376 deletions(-) delete mode 100644 src/main/java/com/glxp/api/task/ThirdSysInterfaceTask.java diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrCorpsController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrCorpsController.java index e263cf2d0..ae7bc4d1f 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrCorpsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrCorpsController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.thrsys; +import cn.hutool.core.thread.ThreadUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; @@ -23,6 +24,7 @@ import com.glxp.api.service.thrsys.ThrCorpsDlService; import com.glxp.api.service.thrsys.ThrSystemDetailService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.RedisUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -32,6 +34,7 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +@Slf4j @RestController public class ThrCorpsController { @Resource @@ -137,7 +140,7 @@ public class ThrCorpsController { thrCorpImportLogEntity.setUpdateTime(new Date()); thrCorpImportLogEntity.setThirdSysFk(filterThrProductsRequest.getThirdSysFk()); thrCorpImportLogService.insertImportLog(thrCorpImportLogEntity); - thrCorpsDlService.importCorps(genKey,null, filterThrProductsRequest.getThirdSysFk()); + thrCorpsDlService.importCorps(genKey, null, filterThrProductsRequest.getThirdSysFk()); return ResultVOUtils.success("后台开始下载更新,请稍后刷新查看"); } } @@ -146,33 +149,19 @@ public class ThrCorpsController { @AuthRuleAnnotation("") @PostMapping("/udiwms/thrsys/corp/corpsDlAll") public BaseResponse corpsDlAll(@RequestBody ThrUnitMaintainFilterRequest thrUnitMaintainFilterRequest) { - thrUnitMaintainFilterRequest.setThirdSysFk(thrUnitMaintainFilterRequest.getThirdSys()); - String data = (String) redisUtil.get(Constant.dlThrProducts); - if (data != null && data.equals("true")) { - return ResultVOUtils.error(500, "当前任务正在下载更新产品信息,请稍后重试!"); - } else { - redisUtil.set(Constant.dlThrCorps, "true", 30); - if (thrUnitMaintainFilterRequest.getThirdSysFk() == null) { - return ResultVOUtils.error(500, "未选择第三方系统!"); - } - ThrCorpImportLogEntity thrCorpImportLogEntity = new ThrCorpImportLogEntity(); - String genKey = CustomUtil.getId(); - thrCorpImportLogEntity.setGenKey(genKey); - thrCorpImportLogEntity.setFromType("第三方系统获取"); - thrCorpImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_PROCESS); - thrCorpImportLogEntity.setUpdateTime(new Date()); - thrCorpImportLogEntity.setThirdSysFk(thrUnitMaintainFilterRequest.getThirdSysFk()); - thrCorpImportLogService.insertImportLog(thrCorpImportLogEntity); - - if (thrUnitMaintainFilterRequest.getThrCorpEntities() != null && thrUnitMaintainFilterRequest.getThrCorpEntities().size() > 0) {//选中导出 - thrCorpsDlService.importSelectCorps(genKey, thrUnitMaintainFilterRequest.getThrCorpEntities(), thrUnitMaintainFilterRequest.getThirdSysFk()); - } else { //结果导出 - thrCorpsDlService.importCorps(genKey,thrUnitMaintainFilterRequest, thrUnitMaintainFilterRequest.getThirdSysFk()); + if (null == thrUnitMaintainFilterRequest) { + return ResultVOUtils.error(500, "参数不能为空"); + } + ThreadUtil.execAsync(() -> { + try { + thrCorpService.downloadByRequest(thrUnitMaintainFilterRequest); + } catch (Exception e) { + log.error("下载异常", e); + e.printStackTrace(); } -// thrCorpsDlService.importCorps(genKey, filterThrCorpRequest.getThirdSysFk()); - return ResultVOUtils.success("后台开始下载更新,请稍后刷新查看"); - } + }); + return ResultVOUtils.success("后台正在下载,请稍后刷新查看!"); } //查询ERP往来单位 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 97066c999..31dc2c92e 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrProductsController.java @@ -24,12 +24,14 @@ import com.glxp.api.res.thrsys.ThrProductsResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.thrsys.ThrProductsService; import com.glxp.api.service.thrsys.ThrSystemDetailService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.IOException; import java.util.Date; import java.util.List; @@ -41,6 +43,7 @@ import java.util.List; * @author ${author} * @since 2023-01-10 */ +@Slf4j @RestController public class ThrProductsController { @@ -74,35 +77,9 @@ public class ThrProductsController { if (thrSystemDetailEntity.getEnabled()) { if (thrSystemDetailEntity.getFromType() == 0 || (filterThrProductsRequest.getIsDownThrSys() != null && filterThrProductsRequest.getIsDownThrSys())) { BaseResponse> udiDlDeviceResponse = erpBasicClient.getErpProducts(filterThrProductsRequest); - if (udiDlDeviceResponse.getCode() == 20000) { - List invmandocResponses = udiDlDeviceResponse.getData().getList(); - //todo 耗材字典未确认数据库 -// if (invmandocResponses != null) { -// for (ThrProductsResponse invmandocResponse : invmandocResponses) { -// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(invmandocResponse.getCode(), filterErpGoodsRequest.getThirdSys()); -// invmandocResponse.setThirdSys(thrProductsRequest.getThirdSys()); -// if (udiRelevanceEntity != null) { -// invmandocResponse.setChecked(true); -// } else { -// invmandocResponse.setChecked(false); -// } -// } -// } - - } return udiDlDeviceResponse; } else { - List thrCorpEntities = thrProductsService.filterJoinThrProducts(filterThrProductsRequest); - //todo 耗材字典未确认数据库 -// for (ThrProductsEntity thrProductsEntity : thrCorpEntities) { -// UdiRelevanceEntity udiRelevanceEntity = udiRelevanceService.selectByThirdId(thrProductsEntity.getCode(), thrProductsEntity.getThirdSysFk()); -// if (udiRelevanceEntity != null) { -// thrProductsEntity.setChecked(true); -// } else { -// thrProductsEntity.setChecked(false); -// } -// } PageInfo pageInfo; pageInfo = new PageInfo<>(thrCorpEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -218,7 +195,11 @@ public class ThrProductsController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "每次只能上传一个文件!"); } ThreadUtil.execAsync(() -> { - thrProductsService.uploadPi(files, thirdSys); + try { + thrProductsService.uploadPi(files.get(0).getBytes(), files.get(0).getName(), thirdSys); + } catch (IOException e) { + e.printStackTrace(); + } }); return ResultVOUtils.success("正在导入中,稍后请刷新页面查看"); } @@ -254,7 +235,13 @@ public class ThrProductsController { ThreadUtil.execAsync(() -> { - thrProductsService.downloadByRequest(filterThrProductsRequest); + try { + thrProductsService.downloadByRequest(filterThrProductsRequest); + } catch (Exception e) { + log.error("下载异常", e); + e.printStackTrace(); + } + }); return ResultVOUtils.success("后台正在下载,请稍后刷新查看!"); } diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index 436d5ec0c..bbd0a1c27 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.File; import java.util.List; /** @@ -44,7 +45,6 @@ public class ErpBasicClient { BeanUtils.copyProperties(thrUnitMaintainFilterRequest, udiwmsUnitRequest); udiwmsUnitRequest.setUnitId(thrUnitMaintainFilterRequest.getErpId()); ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thrUnitMaintainFilterRequest.getThirdSysFk()); - try { String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/getUnits"; String response = httpOkClient.uCloudPost(url, udiwmsUnitRequest, thrSystemEntity); @@ -158,16 +158,14 @@ public class ErpBasicClient { * @param thirdSys * @return */ - public BaseResponse uploadPi(List files, String thirdSys) { + public BaseResponse uploadPi(byte[] bytes, String fileName, String thirdSys) { ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thirdSys); String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/pi/upload"; try { MultipartBody.Builder builder = new MultipartBody.Builder() .setType(MultipartBody.FORM); - for (MultipartFile file : files) { - builder.addFormDataPart("file", file.getOriginalFilename(), RequestBody.create(MediaType.parse("application/vnd.ms-excel"), file.getBytes())); - } + builder.addFormDataPart("file", fileName, RequestBody.create(MediaType.parse("application/vnd.ms-excel"), bytes)); builder.addFormDataPart("thirdSys", thirdSys); MultipartBody multipartBody = builder.build(); diff --git a/src/main/java/com/glxp/api/req/thrsys/ThrUnitMaintainFilterRequest.java b/src/main/java/com/glxp/api/req/thrsys/ThrUnitMaintainFilterRequest.java index 7c950df79..24a55904b 100644 --- a/src/main/java/com/glxp/api/req/thrsys/ThrUnitMaintainFilterRequest.java +++ b/src/main/java/com/glxp/api/req/thrsys/ThrUnitMaintainFilterRequest.java @@ -1,6 +1,7 @@ package com.glxp.api.req.thrsys; +import cn.hutool.core.util.StrUtil; import com.glxp.api.util.page.ListPageRequest; import com.glxp.api.res.thrsys.ThrCorpsResponse; import lombok.Data; @@ -28,4 +29,18 @@ public class ThrUnitMaintainFilterRequest extends ListPageRequest { private Boolean isDownThrSys; private String lastUpdateTime; List thrCorpEntities; + + + public String getThirdSys() { + if (StrUtil.isEmpty(thirdSys)) + return thirdSysFk; + return thirdSys; + } + + public String getThirdSysFk() { + + if (StrUtil.isEmpty(thirdSysFk)) + return thirdSys; + return thirdSysFk; + } } 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 9164be85d..1572fff76 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -31,6 +31,7 @@ import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.idc.service.FileService; import com.glxp.api.idc.service.IdcService; import com.glxp.api.req.sync.SpsSyncDataRequest; +import com.glxp.api.res.inv.InnerOrderPrintResponse; import com.glxp.api.res.sync.*; import com.glxp.api.service.auth.*; import com.glxp.api.service.basic.EntrustReceService; @@ -1614,7 +1615,13 @@ public class HeartService { supManufacturerDao.replaceBatch(supManufacturerList); } if (CollectionUtil.isNotEmpty(supProductList)) { - supProductDao.replaceBatch(supProductList); + List> splits = CustomUtil.splitList(supProductList, 100); + if (CollUtil.isNotEmpty(splits)) { + for (List items : splits) { + supProductDao.replaceBatch(items); + } + } + } if (CollUtil.isNotEmpty(syncFiles)) { // fileService.download(syncFiles); diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrCorpService.java b/src/main/java/com/glxp/api/service/thrsys/ThrCorpService.java index c6ff97012..40f445e35 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrCorpService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrCorpService.java @@ -6,6 +6,7 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.entity.thrsys.ThrCorpEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.thrsys.FilterThrCorpRequest; +import com.glxp.api.req.thrsys.ThrUnitMaintainFilterRequest; import com.glxp.api.res.thrsys.ThrCorpsResponse; import com.glxp.api.res.thrsys.ThrUnitMaintainResponse; @@ -42,4 +43,5 @@ public interface ThrCorpService extends IService { */ BaseResponse downloadThrCorp(ThrSystemDetailEntity thrSystemDetailEntity); + public BaseResponse downloadByRequest(ThrUnitMaintainFilterRequest request); } diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrCorpsDlService.java b/src/main/java/com/glxp/api/service/thrsys/ThrCorpsDlService.java index aee1de9c1..2f5909e5e 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrCorpsDlService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrCorpsDlService.java @@ -45,7 +45,7 @@ public class ThrCorpsDlService { ThrCorpExportLogService thrCorpExportLogService; @Resource private ThrCorpImportDetailService thrCorpImportDetailService; -// @Value("${SPSYNC_IP}") + // @Value("${SPSYNC_IP}") // private String spsSyncUrl; @Resource ErpBasicClient erpBasicClient; @@ -353,9 +353,9 @@ public class ThrCorpsDlService { public List> genExcelData(FilterThrCorpRequest filterThrOrderRequest) { List> excelData = new ArrayList<>(); - List thrCorpEntityList=new ArrayList<>(); + List thrCorpEntityList = new ArrayList<>(); List thrCorpsResponseList = thrCorpService.filterThrCorps(filterThrOrderRequest); - if(thrCorpsResponseList.size()>0){ + if (thrCorpsResponseList.size() > 0) { thrCorpEntityList = thrCorpsResponseList.stream().map( item -> { ThrCorpEntity thrCorpEntity = new ThrCorpEntity(); @@ -419,12 +419,12 @@ public class ThrCorpsDlService { exportData.addAll(thrCorpEntities); } else { //根据查询条件一键导出数据库往来单位 - List thrCorpEntityList=new ArrayList<>(); + List thrCorpEntityList = new ArrayList<>(); FilterThrCorpRequest filterThrCorpRequest = new FilterThrCorpRequest(); BeanUtils.copyProperties(thrCorpExportRequest, filterThrCorpRequest); filterThrCorpRequest.setPage(null); List thrCorpsResponseList = thrCorpService.filterThrCorps(filterThrCorpRequest); - if(thrCorpsResponseList.size()>0){ + if (thrCorpsResponseList.size() > 0) { thrCorpEntityList = thrCorpsResponseList.stream().map( item -> { ThrCorpEntity thrCorpEntity = new ThrCorpEntity(); @@ -476,12 +476,12 @@ public class ThrCorpsDlService { exportData.addAll(thrCorpEntities); } else { //根据查询条件一键导出数据库往来单位 - List thrCorpEntityList=new ArrayList<>(); + List thrCorpEntityList = new ArrayList<>(); FilterThrCorpRequest filterThrCorpRequest = new FilterThrCorpRequest(); BeanUtils.copyProperties(thrCorpExportRequest, filterThrCorpRequest); filterThrCorpRequest.setPage(null); List thrCorpsResponseList = thrCorpService.filterThrCorps(filterThrCorpRequest); - if(thrCorpsResponseList.size()>0){ + if (thrCorpsResponseList.size() > 0) { thrCorpEntityList = thrCorpsResponseList.stream().map( item -> { ThrCorpEntity thrCorpEntity = new ThrCorpEntity(); diff --git a/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java b/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java index f9ac1ad55..c59b4e693 100644 --- a/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java +++ b/src/main/java/com/glxp/api/service/thrsys/ThrProductsService.java @@ -49,7 +49,7 @@ public interface ThrProductsService extends IService { * @param thirdSys * @return */ - BaseResponse uploadPi(List files, String thirdSys); + BaseResponse uploadPi(byte[] bytes, String fileName, String thirdSys); /** * 将上传的第三方系统的数据插入到数据库 diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrCorpServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrCorpServiceImpl.java index 00f65773b..f179f6269 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrCorpServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrCorpServiceImpl.java @@ -1,6 +1,7 @@ package com.glxp.api.service.thrsys.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; @@ -47,11 +48,19 @@ public class ThrCorpServiceImpl extends ServiceImpl i @Override public boolean insertThrCorps(ThrCorpEntity thrCorpEntity) { + if (thrCorpEntity.getId() == null) { + thrCorpEntity.setId(IdUtil.getSnowflakeNextId()); + } return thrCorpDao.insertThrCorps(thrCorpEntity); } @Override public boolean insertThrCorpss(List thrCorpEntitys) { + for (ThrCorpEntity thrCorpEntity : thrCorpEntitys) { + if (thrCorpEntity.getId() == null) { + thrCorpEntity.setId(IdUtil.getSnowflakeNextId()); + } + } return thrCorpDao.insertThrCorpss(thrCorpEntitys); } @@ -125,7 +134,51 @@ public class ThrCorpServiceImpl extends ServiceImpl i BeanUtil.copyProperties(thrCorpsResponse, thrCorpEntity); thrCorpEntity.setCreateTime(new Date()); thrCorpEntity.setUpdateTime(new Date()); - thrCorpEntity.setId(null); + thrCorpEntity.setId(IdUtil.getSnowflakeNextId()); + thrCorpEntity.setThirdSysFk(thrSystemDetailEntity.getThirdSysFk()); + thrCorpDao.insertThrCorps(thrCorpEntity); + } else { + boolean isChange = verifyDataChange(thrCorpEntity, thrCorpsResponse); + if (isChange) { + thrCorpEntity.setUpdateTime(new Date()); + thrCorpDao.updateThrCorps(thrCorpEntity); + } + } + }); + + if (list.size() >= limit) { + page++; + } else { + break; + } + } else { + return baseResponse; + } + } + + return ResultVOUtils.success("下载完成"); + } + + @Override + public BaseResponse downloadByRequest(ThrUnitMaintainFilterRequest request) { + int page = 1; + int limit = 100; + while (true) { + request.setPage(page); + request.setLimit(limit); + request.setThirdSysFk(request.getThirdSys()); + BaseResponse> baseResponse = erpBasicClient.getErpCrop(request); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + list.forEach(thrCorpsResponse -> { + ThrCorpEntity thrCorpEntity = thrCorpDao.selectByUnitIdAndThirdId(thrCorpsResponse.getUnitId(), request.getThirdSys()); + if (null == thrCorpEntity) { + thrCorpEntity = new ThrCorpEntity(); + BeanUtil.copyProperties(thrCorpsResponse, thrCorpEntity); + thrCorpEntity.setCreateTime(new Date()); + thrCorpEntity.setUpdateTime(new Date()); + thrCorpEntity.setThirdSysFk(request.getThirdSys()); + thrCorpEntity.setId(IdUtil.getSnowflakeNextId()); thrCorpDao.insertThrCorps(thrCorpEntity); } else { boolean isChange = verifyDataChange(thrCorpEntity, thrCorpsResponse); diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 45e4bd45f..4bd4fcc4a 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -130,8 +130,8 @@ public class ThrProductsServiceImpl extends ServiceImpl files, String thirdSys) { - BaseResponse baseResponse = erpBasicClient.uploadPi(files, thirdSys); + public BaseResponse uploadPi(byte[] bytes, String fileName, String thirdSys) { + BaseResponse baseResponse = erpBasicClient.uploadPi(bytes, fileName, thirdSys); if (baseResponse.getCode() == 20000) { return ResultVOUtils.success("导入成功"); } else { @@ -153,10 +153,11 @@ public class ThrProductsServiceImpl extends ServiceImpl> baseResponse = erpBasicClient.getErpProducts(filterThrProductsRequest); if (baseResponse.getCode() == 20000) { @@ -230,6 +234,7 @@ public class ThrProductsServiceImpl extends ServiceImpl> keyMap = new ConcurrentHashMap<>(5); - - private volatile ExecutorService executor; - - /** - * 获取执行任务的线程池 - * - * @return - */ - private ExecutorService getExecutor() { - if (null == executor) { - synchronized (this) { - log.info("初始化第三方系统接口执行线程池"); - executor = ThreadUtil.newExecutor(10, 100, Integer.MAX_VALUE); - } - } - return executor; - } - - @Resource - private RedisUtil redisUtil; - @Resource - private ThrSystemDetailDao thrSystemDetailDao; - @Resource - private ThrInvWarehouseService thrInvWarehouseService; - @Resource - private ThrCorpService thrCorpService; - @Resource - private ThrProductsService thrProductsService; - @Resource - private IThrBusTypeOriginService thrBusTypeOriginService; - @Resource - private IoOrderService orderService; - - @Scheduled(fixedRate = 1 * 1000, initialDelay = 60 * 1000) - public void scanInterface() { - log.info("开始扫描自动执行的第三方接口列表"); - List list = thrSystemDetailDao.selectAutoExecuteList(); - if (CollUtil.isNotEmpty(list)) { - log.info("本次查询到的接口列表数量:{}", list.size()); - list.parallelStream().forEach(thrSystemDetailEntity -> { - switch (thrSystemDetailEntity.getKey()) { - case ThirdSysConstant.WAREHOUSE_QUERY_URL: - //下载第三方仓库信息 - downloadThrInv(thrSystemDetailEntity); - break; - case ThirdSysConstant.CORP_URL: - //下载往来单位信息 - downloadThrCorp(thrSystemDetailEntity); - break; - case ThirdSysConstant.PI_QUERY_URL: - //下载第三方产品信息 - downloadThrPi(thrSystemDetailEntity); - break; - case ThirdSysConstant.BUS_TYPE_QUERY_URL: - //下载第三方单据类型 - downloadThrBusType(thrSystemDetailEntity); - break; - case ThirdSysConstant.ORDER_SUBMIT_URL: - //提交单据 - submitOrder(thrSystemDetailEntity); - break; - default: - //其他接口暂不处理 - break; - } - }); - } else { - log.info("未配置自动执行的第三方接口列表"); - } - } - - /** - * 提交单据到第三方系统 - * - * @param thrSystemDetailEntity - */ - private void submitOrder(ThrSystemDetailEntity thrSystemDetailEntity) { - //校验任务并更新redis数据执行标识 - if (verifyTask(thrSystemDetailEntity)) { - getExecutor().submit(() -> { - log.info("开始提交单据到第三方系统"); - try { - orderService.submitOrderToThrSys(thrSystemDetailEntity); - } catch (Exception e) { - log.error("提交单据到第三方系统异常", e); - } finally { - updateTask(getTaskKey(thrSystemDetailEntity)); - } - log.info("提交单据到第三方系统完成"); - }); - } - } - - /** - * 下载第三方单据类型 - * - * @param thrSystemDetailEntity - */ - private void downloadThrBusType(ThrSystemDetailEntity thrSystemDetailEntity) { - //校验任务并更新redis数据执行标识 - if (verifyTask(thrSystemDetailEntity)) { - getExecutor().submit(() -> { - log.info("开始下载第三方单据类型"); - try { - thrBusTypeOriginService.downloadThrBusType(thrSystemDetailEntity); - } catch (Exception e) { - log.error("下载第三方单据类型异常", e); - } finally { - updateTask(getTaskKey(thrSystemDetailEntity)); - } - log.info("第三方单据类型下载完成"); - }); - } - } - - /** - * 下载第三方产品信息 - * - * @param thrSystemDetailEntity - */ - private void downloadThrPi(ThrSystemDetailEntity thrSystemDetailEntity) { - //校验任务并更新redis数据执行标识 - if (verifyTask(thrSystemDetailEntity)) { - getExecutor().submit(() -> { - log.info("开始下载第三方产品信息"); - try { - thrProductsService.downloadThrPi(thrSystemDetailEntity); - } catch (Exception e) { - log.error("下载第三方产品信息异常", e); - } finally { - updateTask(getTaskKey(thrSystemDetailEntity)); - } - log.info("第三方产品信息下载完成"); - }); - } - } - - /** - * 下载第三方往来单位 - * - * @param thrSystemDetailEntity - */ - private void downloadThrCorp(ThrSystemDetailEntity thrSystemDetailEntity) { - //校验任务并更新redis数据执行标识 - if (verifyTask(thrSystemDetailEntity)) { - getExecutor().submit(() -> { - log.info("开始下载第三方往来单位信息"); - try { - thrCorpService.downloadThrCorp(thrSystemDetailEntity); - } catch (Exception e) { - log.error("下载第三方往来单位异常", e); - } finally { - updateTask(getTaskKey(thrSystemDetailEntity)); - } - log.info("第三方往来单位信息下载完成"); - }); - } - } - - /** - * 下载第三方系统仓库 - * - * @param thrSystemDetailEntity - */ - private void downloadThrInv(ThrSystemDetailEntity thrSystemDetailEntity) { - //校验任务并更新redis数据执行标识 - if (verifyTask(thrSystemDetailEntity)) { - getExecutor().submit(() -> { - log.info("开始下载第三方仓库信息"); - try { - thrInvWarehouseService.downloadThrInv(thrSystemDetailEntity); - } catch (Exception e) { - log.error("下载第三方仓库信息异常", e); - } finally { - //保证任务标识一定会被修改回去 - updateTask(getTaskKey(thrSystemDetailEntity)); - } - log.info("第三方仓库信息下载完成"); - }); - } - } - - /** - * 更新任务状态为已完成 - * - * @param taskKey - */ - private void updateTask(String taskKey) { - ThirdSysInterfaceExecuteVo vo = getLastResult(taskKey); - vo.setFinished(true); - redisUtil.set(taskKey, vo); - } - - /** - * 校验当前任务是否可以执行 - * - * @param thrSystemDetailEntity - * @return - */ - private boolean verifyTask(ThrSystemDetailEntity thrSystemDetailEntity) { - String taskKey = getTaskKey(thrSystemDetailEntity); - ThirdSysInterfaceExecuteVo vo = getLastResult(taskKey); - if (null != vo && !vo.isFinished()) { - log.info("有任务尚未执行完成,当前任务key:{}", taskKey); - return false; - } - long nextTime = DateUtil.offsetMonth(new Date(), thrSystemDetailEntity.getTime()).getTime(); - vo = Optional.ofNullable(vo).orElse(new ThirdSysInterfaceExecuteVo()); - vo.setKey(taskKey); - vo.setNextTime(nextTime); - vo.setFinished(false); - redisUtil.set(taskKey, vo); - return true; - } - - /** - * 获取上一次执行结果 - * - * @param taskKey - * @return - */ - private ThirdSysInterfaceExecuteVo getLastResult(String taskKey) { - String json = redisUtil.getJSON(taskKey); - return StrUtil.isBlank(json) ? null : JSONUtil.toBean(json, ThirdSysInterfaceExecuteVo.class); - } - - /** - * 拼接redis Key - * - * @param thrSystemDetailEntity - * @return - */ - private String getTaskKey(ThrSystemDetailEntity thrSystemDetailEntity) { - String key = ""; - Map keys = keyMap.get(thrSystemDetailEntity.getThirdSysFk()); - if (CollUtil.isEmpty(keys)) { - Map map = new HashMap<>(1); - key = "thirdI:" + thrSystemDetailEntity.getThirdSysFk() + ":" + thrSystemDetailEntity.getKey(); - map.put(thrSystemDetailEntity.getKey(), key); - keyMap.put(thrSystemDetailEntity.getThirdSysFk(), map); - } else { - key = keys.get(thrSystemDetailEntity.getKey()); - if (StrUtil.isBlank(key)) { - key = "thirdI:" + thrSystemDetailEntity.getThirdSysFk() + ":" + thrSystemDetailEntity.getKey(); - Map map = new HashMap<>(1); - map.put(thrSystemDetailEntity.getKey(), key); - keyMap.put(thrSystemDetailEntity.getThirdSysFk(), map); - } - } - return key; - } - -} diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml index d767b3ff2..0a184c924 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrCorpDao.xml @@ -26,12 +26,12 @@ - + replace - INTO thr_corp - (unitId, name, spell, addr, creditNo, - contact, mobile, thirdSysFk, updateTime, createUser, createTime, updateUser, remark) - values (#{unitId}, + INTO thr_corp + (id, unitId, name, spell, addr, creditNo, + contact, mobile, thirdSysFk, updateTime, createUser, createTime, updateUser, remark) + values (#{id}, #{unitId}, #{name}, #{spell}, #{addr}, @@ -48,13 +48,13 @@ replace INTO thr_corp - (unitId, name, spell, addr, creditNo, - contact, mobile, thirdSysFk, updateTime, createUser, createTime, updateUser, remark) - values + (id, unitId, name, spell, addr, creditNo, + contact, mobile, thirdSysFk, updateTime, createUser, createTime, updateUser, remark) + values - (#{item.unitId}, + (#{item.id}, #{item.unitId}, #{item.name}, #{item.spell}, #{item.addr}, @@ -134,8 +134,8 @@ replace - into thr_corp (unitId, spell, addr, creditNo, contact, mobile, thirdSysFk, name, updateTime, createUser, - createTime, updateUser, remark) + into thr_corp (unitId, spell, addr, creditNo, contact, mobile, thirdSysFk, name, updateTime, createUser, + createTime, updateUser, remark) values (#{unitId}, #{spell}, #{addr}, @@ -183,7 +183,7 @@ resultType="com.glxp.api.entity.thrsys.ThrSystemDetailEntity"> select basic_third_sys_detail.*, basic_third_sys.thridUrl FROM basic_third_sys_detail - inner join basic_third_sys on basic_third_sys_detail.thirdSysFk = basic_third_sys.thirdId + inner join basic_third_sys on basic_third_sys_detail.thirdSysFk = basic_third_sys.thirdId WHERE basic_third_sys_detail.key = #{key} and basic_third_sys_detail.thirdSysFk = #{thirdSys} and basic_third_sys.enabled = 1 @@ -214,4 +214,4 @@ - \ No newline at end of file + From e713e03a31b05274e71a0ce05a3c2ad7fea1cd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Thu, 25 May 2023 17:19:17 +0800 Subject: [PATCH 04/32] =?UTF-8?q?=E6=97=A5=E5=92=8C=E6=9C=88=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/dao/inout/IoOrderDao.java | 5 + .../api/dao/inout/IoOrderDetailResultDao.java | 2 +- .../com/glxp/api/res/inv/DateRequest.java | 12 ++ .../api/service/inout/IoOrderService.java | 3 + .../inout/impl/IoOrderServiceImpl.java | 5 + .../inout/impl/IoStatDayServiceImpl.java | 61 ++++-- .../inout/impl/IoStatMonthServiceImpl.java | 194 +++++++++++++----- .../com/glxp/api/task/IoStatOrderTask.java | 16 +- .../mybatis/mapper/inout/IoOrderDao.xml | 113 +++++----- .../mapper/inout/IoOrderDetailResultDao.xml | 11 +- 10 files changed, 308 insertions(+), 114 deletions(-) create mode 100644 src/main/java/com/glxp/api/res/inv/DateRequest.java diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java index eae776426..4755e859d 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java @@ -70,4 +70,9 @@ public interface IoOrderDao extends BaseMapperPlus selectWaitSubmitOrder(@Param("thirdSys") String thirdSys); boolean updateOrder(IoOrderEntity orderEntity); + + List selectOrderIdList(@Param("data") String data); + + List selectOrderfirstAndLastIdList(@Param("firstData") String firstData,@Param("lastData") String lastData); + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java index dc8c808b1..d4548eb7a 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java @@ -31,5 +31,5 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus selectStatDataByTime(@Param("date") String date); + List selectStatDataByTime(@Param("list") List orderIdFk); } diff --git a/src/main/java/com/glxp/api/res/inv/DateRequest.java b/src/main/java/com/glxp/api/res/inv/DateRequest.java new file mode 100644 index 000000000..c153d7a71 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inv/DateRequest.java @@ -0,0 +1,12 @@ +package com.glxp.api.res.inv; + +import lombok.Data; + +@Data +public class DateRequest { + + private String firstDay; + private String lastDay; + private int year; + private int momth; +} 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 80a5af315..a9e69f313 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -7,6 +7,7 @@ import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.FilterUploadOrderRequest; import com.glxp.api.req.inout.OrderEditRequest; import com.glxp.api.res.inout.IoOrderResponse; +import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; @@ -137,4 +138,6 @@ public interface IoOrderService { BaseResponse submitOrderToThrSys(ThrSystemDetailEntity thrSystemDetailEntity); List selectList(Long userId); + + List selectOrderIdList(@Param("data") String data); } 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 dc579d6dc..d780f4888 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 @@ -869,6 +869,11 @@ public class IoOrderServiceImpl implements IoOrderService { return ioOrderEntities; } + @Override + public List selectOrderIdList(String data) { + return orderDao.selectOrderIdList(data); + } + /** * 查询此单据关联的所有单据 * diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java index f6eb7bb96..68840468e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java @@ -11,10 +11,7 @@ import com.glxp.api.dao.inout.IoOrderDao; import com.glxp.api.dao.inout.IoOrderDetailResultDao; import com.glxp.api.dao.inout.IoStatDayDao; import com.glxp.api.dao.inout.IoStatOrderDao; -import com.glxp.api.entity.inout.IoOrderDetailResultEntity; -import com.glxp.api.entity.inout.IoOrderEntity; -import com.glxp.api.entity.inout.IoStatDayEntity; -import com.glxp.api.entity.inout.IoStatOrderEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.req.inout.FilterStatDataDetailRequest; import com.glxp.api.service.inout.IoStatDayService; import com.glxp.api.util.GennerOrderUtils; @@ -29,10 +26,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -52,14 +49,21 @@ public class IoStatDayServiceImpl implements IoStatDayService { @Resource private SqlSessionFactory sqlSessionFactory; + @Override public void statData(Date date) { - //汇总前一天的数据 + //汇总前一天的数据9 DateTime yesterday = DateUtil.offsetDay(date, -1); - List orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(yesterday.toString("yyyy-MM-dd")); + List dataList = new ArrayList<>(); + //查询单号 + List orderIdFkList = new ArrayList<>(); + orderIdFkList = orderDao.selectOrderIdList(yesterday.toString("yyyy-MM-dd")); + List orderDetailResultEntities = new ArrayList<>(); + if(orderIdFkList.size()>0){ + orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList); + } if (CollUtil.isNotEmpty(orderDetailResultEntities)) { //声明用于存放汇总数据的集合 - List dataList = new ArrayList<>(); orderDetailResultEntities.forEach(orderDetailResultEntity -> { //获取新的汇总数据 IoStatDayEntity statData = getStatData(dataList, orderDetailResultEntity, yesterday); @@ -83,6 +87,17 @@ public class IoStatDayServiceImpl implements IoStatDayService { } }); + //汇总上一天存在上上一天不存在产品的汇总数据 + //获取上上天的数据 + DateTime twoDay = DateUtil.offsetDay(date, -2); + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("year", twoDay.year()); + ew.eq("quarter", twoDay.quarter()); + ew.eq("month", twoDay.monthBaseOne()); + ew.eq("day", twoDay.dayOfMonth()); + List ioStatDayEntityList=statDayDao.selectList(ew); + List newOrOldDate=getNewOrOldDate(dataList,ioStatDayEntityList); + dataList.addAll(newOrOldDate); //插入汇总记录 saveData(yesterday, dataList); } @@ -100,7 +115,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { } @Override - public List filterListByRecordKey(String recordKey) { + public List filterListByRecordKey(String recordKey) { return statDayDao.filterListByRecordKey(recordKey); } @@ -223,4 +238,26 @@ public class IoStatDayServiceImpl implements IoStatDayService { return wrapper; } + private List getNewOrOldDate(List newIoStatDayEntity, List oldIoStatDayEntity){ + + // 计算出两个集合之间产品批次号组成的差异 + List IoStatDayEntityList = oldIoStatDayEntity.stream() + .filter(notComment -> { + List filtered = newIoStatDayEntity.stream().filter(all -> + Objects.equals(all.getBatchNo(), notComment.getBatchNo()) // 使用 Objects.equals 来进行非空判断 + && Objects.equals(all.getRelIdFk(), notComment.getRelIdFk())) + .collect(Collectors.toList()); + return filtered.isEmpty(); + }).collect(Collectors.toList()); + + for (IoStatDayEntity ioStatDayEntity : IoStatDayEntityList) { + ioStatDayEntity.setId(null); + ioStatDayEntity.setBeginCount(ioStatDayEntity.getBalanceCount()); + ioStatDayEntity.setBalanceAmount(ioStatDayEntity.getBalanceAmount()); + ioStatDayEntity.setBeginPrice(ioStatDayEntity.getBalancePrice()); + ioStatDayEntity.setInCount(0); + ioStatDayEntity.setOutCount(0); + } + return IoStatDayEntityList; + } } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java index 9120efa99..8e0d41973 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java @@ -7,13 +7,11 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; -import com.glxp.api.dao.inout.IoStatDayDao; -import com.glxp.api.dao.inout.IoStatMonthDao; -import com.glxp.api.dao.inout.IoStatOrderDao; -import com.glxp.api.entity.inout.IoStatDayEntity; -import com.glxp.api.entity.inout.IoStatMonthEntity; -import com.glxp.api.entity.inout.IoStatOrderEntity; +import com.glxp.api.constant.ConstantType; +import com.glxp.api.dao.inout.*; +import com.glxp.api.entity.inout.*; import com.glxp.api.req.inout.FilterStatDataDetailRequest; +import com.glxp.api.res.inv.DateRequest; import com.glxp.api.service.inout.IoStatMonthService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; @@ -27,7 +25,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -44,36 +45,65 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { private IoStatOrderDao statOrderDao; @Resource private SqlSessionFactory sqlSessionFactory; + @Resource + private IoOrderDao orderDao; + @Resource + private IoOrderDetailResultDao ioOrderDetailResultDao; @Override public void statData(Date date) { - //汇总上一个月的数据 + DateTime lastMonth = DateUtil.lastMonth(); - //查询上个月每天的汇总数据 - List statDayList = statDayDao.selectList(new QueryWrapper() - .eq("year", lastMonth.year()) - .eq("quarter", lastMonth.quarter()) - .eq("month", lastMonth.monthBaseOne()) - ); - - if (CollUtil.isNotEmpty(statDayList)) { + //汇总上一个月的数据 + DateRequest dateRequest = getYearAndMonth(1); + DateRequest dateRequest1 = getfirstDayAndLastDay(dateRequest.getYear(), dateRequest.getMomth()); + List dataList = new ArrayList<>(); + //查询单号 + List orderIdFkList = new ArrayList<>(); + orderIdFkList = orderDao.selectOrderfirstAndLastIdList(dateRequest1.getFirstDay(), dateRequest1.getLastDay()); + List orderDetailResultEntities = new ArrayList<>(); + if(orderIdFkList.size()>0){ + orderDetailResultEntities = ioOrderDetailResultDao.selectStatDataByTime(orderIdFkList); + } + + + if (CollUtil.isNotEmpty(orderDetailResultEntities)) { //声明用于存放汇总数据的集合 - List dataList = new ArrayList<>(); - statDayList.forEach(statDayEntity -> { + orderDetailResultEntities.forEach(orderDetailResultEntity -> { //获取新的汇总数据 - IoStatMonthEntity statData = getStatData(dataList, statDayEntity, lastMonth); + IoStatMonthEntity statData = getStatData(dataList, orderDetailResultEntity, lastMonth); - //设置入库数据 - statData.setInCount(statData.getInCount() + statDayEntity.getInCount()); - statData.setInPrice(statDayEntity.getBalancePrice()); - statData.setInAmount(statData.getInAmount().add(statDayEntity.getInAmount())); - - //设置出库数据 - statData.setOutCount(statData.getOutCount() + statDayEntity.getOutCount()); - statData.setOutPrice(statDayEntity.getBalancePrice()); - statData.setOutAmount(statData.getOutAmount().add(statDayEntity.getOutAmount())); + //查询此单是出库还是入库 + IoOrderEntity order = orderDao.selectOne(new QueryWrapper().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk())); + if (order.getMainAction().equals(ConstantType.TYPE_PUT)) { + //入库 + statData.setInCount(orderDetailResultEntity.getReCount() + statData.getInCount()); + if (null != orderDetailResultEntity.getPrice()) { + BigDecimal inAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount())); + statData.setInAmount(inAmount.add(statData.getInAmount())); + } + } else if (order.getMainAction().equals(ConstantType.TYPE_OUT)) { + //出库 + statData.setOutCount(orderDetailResultEntity.getReCount() + statData.getOutCount()); + if (null != orderDetailResultEntity.getPrice()) { + BigDecimal outAmount = orderDetailResultEntity.getPrice().multiply(BigDecimal.valueOf(orderDetailResultEntity.getReCount())); + statData.setOutAmount(outAmount.add(statData.getOutAmount())); + } + } }); + + //汇总上一天存在上上一天不存在产品的汇总数据 + //获取上上天的数据 + DateTime twoDay = new DateTime(); + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("year", twoDay.year()); + ew.eq("quarter", twoDay.quarter()); + ew.eq("month", twoDay.monthBaseOne()-2); + List ioStatMonthEntityList=statMonthDao.selectList(ew); + List newOrOldDate=getNewOrOldDate(dataList,ioStatMonthEntityList); + dataList.addAll(newOrOldDate); + //插入汇总记录 saveData(lastMonth, dataList); } @@ -137,19 +167,20 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { * 获取新的汇总数据 * * @param dataList - * @param statDayEntity + * @param orderDetailResultEntity * @param lastMonth * @return */ - private IoStatMonthEntity getStatData(List dataList, IoStatDayEntity statDayEntity, DateTime lastMonth) { + private IoStatMonthEntity getStatData(List dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime lastMonth) { + if (CollUtil.isNotEmpty(dataList)) { - for (IoStatMonthEntity statMonthEntity : dataList) { - if (statMonthEntity.getRelIdFk().equals(statDayEntity.getRelIdFk())) { - if ((StrUtil.isNotBlank(statMonthEntity.getBatchNo()) && StrUtil.isNotBlank(statDayEntity.getRelIdFk())) && statMonthEntity.getBatchNo().equals(statDayEntity.getBatchNo())) { - return statMonthEntity; + for (IoStatMonthEntity statDayEntity : dataList) { + if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk())) { + if ((StrUtil.isNotBlank(statDayEntity.getBatchNo()) && StrUtil.isNotBlank(orderDetailResultEntity.getBatchNo())) && statDayEntity.getBatchNo().equals(orderDetailResultEntity.getBatchNo())) { + return statDayEntity; + } else if (StrUtil.isBlank(statDayEntity.getBatchNo()) && StrUtil.isBlank(orderDetailResultEntity.getBatchNo())) { + return statDayEntity; } - } else if (StrUtil.isBlank(statMonthEntity.getBatchNo()) && StrUtil.isBlank(statDayEntity.getBatchNo())) { - return statMonthEntity; } } } @@ -158,28 +189,28 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { statData.setYear(lastMonth.year()); statData.setQuarter(lastMonth.quarter()); statData.setMonth(lastMonth.monthBaseOne()); - statData.setRelIdFk(statDayEntity.getRelIdFk()); - statData.setNameCode(statDayEntity.getNameCode()); - statData.setProductName(statDayEntity.getProductName()); - statData.setGgxh(statDayEntity.getGgxh()); - statData.setBatchNo(statDayEntity.getBatchNo()); + statData.setRelIdFk(String.valueOf(orderDetailResultEntity.getBindRlFk())); + statData.setNameCode(orderDetailResultEntity.getNameCode()); + statData.setProductName(orderDetailResultEntity.getCoName()); + statData.setGgxh(orderDetailResultEntity.getSpec()); + statData.setBatchNo(orderDetailResultEntity.getBatchNo()); //设置结余价格 - statData.setBalancePrice(statDayEntity.getBalancePrice()); + statData.setBalancePrice(orderDetailResultEntity.getPrice()); //设置初始化出入库数量和价格 statData.setInCount(0); - statData.setInPrice(statDayEntity.getInPrice()); + statData.setInPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setInAmount(BigDecimal.ZERO); statData.setOutCount(0); - statData.setOutPrice(statDayEntity.getOutPrice()); + statData.setOutPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setOutAmount(BigDecimal.ZERO); //设置期初数据 - IoStatMonthEntity statMonthEntity = statMonthDao.selectOne(buildQueryWrapper(statDayEntity, lastMonth)); + IoStatMonthEntity statMonthEntity = statMonthDao.selectOne(buildQueryWrapper(orderDetailResultEntity, lastMonth)); if (null == statMonthEntity) { //第一次汇总月度数据 statData.setBeginCount(0); - statData.setBeginPrice(statDayEntity.getBalancePrice()); + statData.setBeginPrice(null == orderDetailResultEntity.getPrice() ? BigDecimal.ZERO : orderDetailResultEntity.getPrice()); statData.setBeginAmount(BigDecimal.ZERO); statData.setBalanceCount(0); @@ -190,12 +221,12 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { statData.setBeginPrice(statMonthEntity.getBalancePrice()); statData.setBeginAmount(statMonthEntity.getBalanceAmount()); - statData.setBalanceCount(statDayEntity.getBalanceCount()); + statData.setBalanceCount(statMonthEntity.getBalanceCount()); statData.setBalanceAmount(statMonthEntity.getBalanceAmount()); } //设置结余价格 - statData.setBalancePrice(statDayEntity.getBalancePrice()); + statData.setBalancePrice(statData.getBeginPrice()); dataList.add(statData); return statData; @@ -204,11 +235,11 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { /** * 构造查询条件 * - * @param statDayEntity + * @param ioOrderDetailResultEntity * @param lastMonth * @return */ - private Wrapper buildQueryWrapper(IoStatDayEntity statDayEntity, DateTime lastMonth) { + private Wrapper buildQueryWrapper(IoOrderDetailResultEntity ioOrderDetailResultEntity, DateTime lastMonth) { QueryWrapper wrapper = new QueryWrapper<>(); if (lastMonth.monthBaseOne() == 1) { //当前汇总的记录为1月,上一月份的时间取前一年的12月 @@ -219,9 +250,68 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { .eq("month", lastMonth.monthBaseOne() - 1);//取上上月的数据 } - wrapper.eq("relIdFk", statDayEntity.getRelIdFk()) - .eq(StrUtil.isNotBlank(statDayEntity.getBatchNo()), "batchNo", statDayEntity.getBatchNo()) - .eq(StrUtil.isNotBlank(statDayEntity.getNameCode()), "nameCode", statDayEntity.getNameCode()); + wrapper.eq("relIdFk", ioOrderDetailResultEntity.getBindRlFk()); + wrapper.eq(StrUtil.isNotBlank(ioOrderDetailResultEntity.getBatchNo()), "batchNo", ioOrderDetailResultEntity.getBatchNo()); + wrapper.eq(StrUtil.isNotBlank(ioOrderDetailResultEntity.getNameCode()), "nameCode", ioOrderDetailResultEntity.getNameCode()); return wrapper; } + + private List getNewOrOldDate(List newIoStatDayEntity, List oldIoStatDayEntity) { + + // 计算出两个集合之间产品批次号组成的差异 +// List ioStatMonthEntityList = oldIoStatDayEntity.stream().filter(notComment -> { +// List filtered = newIoStatDayEntity.stream().filter(all -> all.getBatchNo().equals(notComment.getBatchNo()) && all.getRelIdFk().equals(notComment.getRelIdFk())).collect(Collectors.toList()); +// return filtered.isEmpty(); +// }).collect(Collectors.toList()); + + List ioStatMonthEntityList = oldIoStatDayEntity.stream() + .filter(notComment -> { + List filtered = newIoStatDayEntity.stream().filter(all -> + Objects.equals(all.getBatchNo(), notComment.getBatchNo()) // 使用 Objects.equals 来进行非空判断 + && Objects.equals(all.getRelIdFk(), notComment.getRelIdFk())) + .collect(Collectors.toList()); + return filtered.isEmpty(); + }).collect(Collectors.toList()); + + for (IoStatMonthEntity ioStatDayEntity : ioStatMonthEntityList) { + ioStatDayEntity.setId(null); + ioStatDayEntity.setBeginCount(ioStatDayEntity.getBalanceCount()); + ioStatDayEntity.setBalanceAmount(ioStatDayEntity.getBalanceAmount()); + ioStatDayEntity.setBeginPrice(ioStatDayEntity.getBalancePrice()); + ioStatDayEntity.setInCount(0); + ioStatDayEntity.setOutCount(0); + } + return ioStatMonthEntityList; + } + + //获取目标月份的起始和结束时间 + private DateRequest getfirstDayAndLastDay(int year, int month) { + + LocalDate firstDayOfMonth = LocalDate.of(year, month, 1); + LocalDate lastDayOfMonth = firstDayOfMonth.withDayOfMonth(firstDayOfMonth.lengthOfMonth()); + + String pattern = "yyyy-MM-dd"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + DateRequest dateRequest = new DateRequest(); + dateRequest.setLastDay(firstDayOfMonth.format(formatter)); + dateRequest.setFirstDay(lastDayOfMonth.format(formatter)); + return dateRequest; + } + + //获取指定的月份和年份 + private DateRequest getYearAndMonth(int lastNum) { + + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); // 获取当前年份 + int month = calendar.get(Calendar.MONTH) + 1 - lastNum; + if (month < 1) { // 如果当前是一月份,则上一个月份是去年 12 月 + year--; + month = 12 - month; + } + DateRequest dateRequest = new DateRequest(); + dateRequest.setYear(year); + dateRequest.setMomth(month); + return dateRequest; + } + } diff --git a/src/main/java/com/glxp/api/task/IoStatOrderTask.java b/src/main/java/com/glxp/api/task/IoStatOrderTask.java index f2931a488..d1136cfb1 100644 --- a/src/main/java/com/glxp/api/task/IoStatOrderTask.java +++ b/src/main/java/com/glxp/api/task/IoStatOrderTask.java @@ -3,7 +3,9 @@ package com.glxp.api.task; import cn.hutool.core.thread.ThreadUtil; import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.dao.schedule.SystemParamConfigDao; import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.service.inout.IoStatDayService; import com.glxp.api.service.inout.IoStatMonthService; @@ -17,6 +19,8 @@ import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; /** @@ -36,6 +40,8 @@ public class IoStatOrderTask implements SchedulingConfigurer { private IoStatQuarterService statQuarterService; @Resource private IoStatYearService statYearService; + @Resource + private SystemParamConfigDao systemParamConfigDao; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { @@ -53,7 +59,15 @@ public class IoStatOrderTask implements SchedulingConfigurer { } private void process() { - Date today = new Date(); + SystemParamConfigEntity systemParamConfigEntity=systemParamConfigDao.selectByParamKey("date"); + String name=systemParamConfigEntity.getParamValue(); + Date today1 = new Date(); + try { + today1 = new SimpleDateFormat("yyyy-MM-dd").parse(name); + } catch (ParseException e) { + e.printStackTrace(); + } + Date today = today1; //判断起始时间,设置生成递进顺序,保证日汇总数据优先生成,否则后续数据的源数据会发生缺失,导致计算错误 if (DateUtil.isYearStart(today)) { //年初第一天,依次生成 日 -> 月 -> 季度 -> 年度 汇总数据 diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index d115f99c7..a13bd129f 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -54,10 +54,12 @@ AND relKey = #{relKey} - AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') + AND date_format(createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and + date_format(#{endTime}, '%Y-%m-%d') - AND date_format(auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and date_format(#{endAduditTime}, '%Y-%m-%d') + AND date_format(auditTime, '%Y-%m-%d') between date_format(#{startAduditTime}, '%Y-%m-%d') and + date_format(#{endAduditTime}, '%Y-%m-%d') AND `action` in @@ -139,27 +141,27 @@ select t.billNo from io_order t - left join thr_system_bus_api t1 on t.action = t1.code + left join thr_system_bus_api t1 on t.action = t1.code t.status = 7 - and exportStatus = 0 + and exportStatus = 0 AND t1.thirdSys = #{thirdSys} @@ -435,4 +437,23 @@ WHERE billNo = #{billNo} + + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 023f89c4d..9bb799ab7 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -86,7 +86,14 @@ price, reCount from io_order_detail_result - where orderIdFk in - (select billNo from io_order where date_format(updateTime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')) + + + orderIdFk in + + #{item} + + + From 17827ab959aba3daeadf34f7985f5852543e7436 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 25 May 2023 17:51:17 +0800 Subject: [PATCH 05/32] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8E=82=E5=AE=B6=E7=BC=96=E7=A0=81=EF=BC=8C=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/res/thrsys/ThrProductsResponse.java | 2 + .../basic/BasicBackUpdateProductService.java | 2 +- .../thrsys/impl/ThrProductsServiceImpl.java | 2 + .../mybatis/mapper/thrsys/ThrProductsDao.xml | 239 ++++++++++-------- 4 files changed, 134 insertions(+), 111 deletions(-) diff --git a/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java b/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java index e19f9df45..ff4cbf19f 100644 --- a/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java +++ b/src/main/java/com/glxp/api/res/thrsys/ThrProductsResponse.java @@ -48,5 +48,7 @@ public class ThrProductsResponse { private String updateUser; private Date updateTime; private String remark; + private String manufactoryCode; + private String supCode; } diff --git a/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java b/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java index 414030578..fb4431d22 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicBackUpdateProductService.java @@ -240,7 +240,7 @@ public class BasicBackUpdateProductService { udiRelevanceEntity1.setThirdId(thrProductsEntity.getCode()); udiRelevanceEntity1.setUpdateTime(new Date()); udiRelevanceEntity1.setModifyTime(new Date()); - udiRelevanceEntity1.setId(IdUtil.getSnowflakeNextId()); + udiRelevanceEntity1.setId(gennerOrderUtils.getRelId()); udiRelevanceService.insertUdiRelevanceignore(udiRelevanceEntity1); } } diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 4bd4fcc4a..b486399d1 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -295,6 +295,8 @@ public class ThrProductsServiceImpl extends ServiceImpl - - @@ -93,33 +101,36 @@ @@ -153,58 +166,60 @@ replace - INTO thr_products - (id,code, `name`, measname, spec, registerNo, manufactory, + INTO thr_products + (id, code, `name`, measname, spec, registerNo, manufactory, cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms, - thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3,price,createUser,createTime,updateUser) - values ( - #{id}, - #{code}, - #{name}, - #{measname}, - #{spec}, - #{registerNo}, - #{manufactory}, - #{cplb}, - #{flbm}, - #{qxlb}, - #{ybbm}, - #{sptm}, - #{tyshxydm}, - #{zczbhhzbapzbh}, - #{ylqxzcrbarmc}, - #{ylqxzcrbarywmc}, - #{cpms}, - #{thirdSysFk}, - #{updateTime}, - #{supName}, - #{model}, - #{standard}, - #{qtbm}, - #{zczyxqz}, - #{remark}, - #{remark1}, - #{remark2}, - #{remark3}, - #{price}, - #{createUser}, - #{createTime}, - #{updateUser} - ) + thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3, + price, createUser, createTime, updateUser, manufactoryCode, supCode) + values (#{id}, + #{code}, + #{name}, + #{measname}, + #{spec}, + #{registerNo}, + #{manufactory}, + #{cplb}, + #{flbm}, + #{qxlb}, + #{ybbm}, + #{sptm}, + #{tyshxydm}, + #{zczbhhzbapzbh}, + #{ylqxzcrbarmc}, + #{ylqxzcrbarywmc}, + #{cpms}, + #{thirdSysFk}, + #{updateTime}, + #{supName}, + #{model}, + #{standard}, + #{qtbm}, + #{zczyxqz}, + #{remark}, + #{remark1}, + #{remark2}, + #{remark3}, + #{price}, + #{createUser}, + #{createTime}, + #{updateUser}, #{manufactoryCode}, #{supCode}) replace - INTO thr_products - (code, `name`, measname, spec, registerNo, manufactory, - cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms, - thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3, price, - createUser, createTime, updateUser) - values + INTO thr_products + (code, `name`, measname, spec, registerNo, manufactory, + cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms, + thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3, + price, + createUser, createTime, updateUser, manufactoryCode, supCode) + values #{item.code}, #{item.name}, @@ -236,7 +251,7 @@ #{item.price}, #{item.createUser}, #{item.createTime}, - #{item.updateUser} + #{item.updateUser}, #{manufactoryCode}, #{supCode} @@ -268,7 +283,9 @@ remark1, remark2, remark3, - price + price, + manufactoryCode, + supCode from thr_products @@ -283,33 +300,35 @@ update thr_products - code = #{code,jdbcType=VARCHAR}, - name = #{name,jdbcType=VARCHAR}, - measname = #{measname,jdbcType=VARCHAR}, - spec = #{spec,jdbcType=VARCHAR}, - registerNo = #{registerNo,jdbcType=VARCHAR}, - manufactory = #{manufactory,jdbcType=VARCHAR}, - cplb = #{cplb,jdbcType=VARCHAR}, - flbm = #{flbm,jdbcType=VARCHAR}, - qxlb = #{qxlb,jdbcType=VARCHAR}, - ybbm = #{ybbm,jdbcType=VARCHAR}, - sptm = #{sptm,jdbcType=VARCHAR}, - tyshxydm = #{tyshxydm,jdbcType=VARCHAR}, - zczbhhzbapzbh = #{zczbhhzbapzbh,jdbcType=VARCHAR}, - ylqxzcrbarmc = #{ylqxzcrbarmc,jdbcType=VARCHAR}, - ylqxzcrbarywmc = #{ylqxzcrbarywmc,jdbcType=VARCHAR}, - cpms = #{cpms,jdbcType=LONGVARCHAR}, - updateTime = #{updateTime,jdbcType=TIMESTAMP}, - supName = #{supName,jdbcType=VARCHAR}, - model = #{model,jdbcType=VARCHAR}, - standard = #{standard,jdbcType=VARCHAR}, - qtbm = #{qtbm,jdbcType=VARCHAR}, - zczyxqz = #{zczyxqz,jdbcType=VARCHAR}, - remark = #{remark,jdbcType=VARCHAR}, - remark1 = #{remark1,jdbcType=VARCHAR}, - remark2 = #{remark2,jdbcType=VARCHAR}, - remark3 = #{remark3,jdbcType=VARCHAR}, - price = #{price,jdbcType=VARCHAR} + code = #{code,jdbcType=VARCHAR}, + name = #{name,jdbcType=VARCHAR}, + measname = #{measname,jdbcType=VARCHAR}, + spec = #{spec,jdbcType=VARCHAR}, + registerNo = #{registerNo,jdbcType=VARCHAR}, + manufactory = #{manufactory,jdbcType=VARCHAR}, + cplb = #{cplb,jdbcType=VARCHAR}, + flbm = #{flbm,jdbcType=VARCHAR}, + qxlb = #{qxlb,jdbcType=VARCHAR}, + ybbm = #{ybbm,jdbcType=VARCHAR}, + sptm = #{sptm,jdbcType=VARCHAR}, + tyshxydm = #{tyshxydm,jdbcType=VARCHAR}, + zczbhhzbapzbh = #{zczbhhzbapzbh,jdbcType=VARCHAR}, + ylqxzcrbarmc = #{ylqxzcrbarmc,jdbcType=VARCHAR}, + ylqxzcrbarywmc = #{ylqxzcrbarywmc,jdbcType=VARCHAR}, + cpms = #{cpms,jdbcType=LONGVARCHAR}, + updateTime = #{updateTime,jdbcType=TIMESTAMP}, + supName = #{supName,jdbcType=VARCHAR}, + model = #{model,jdbcType=VARCHAR}, + standard = #{standard,jdbcType=VARCHAR}, + qtbm = #{qtbm,jdbcType=VARCHAR}, + zczyxqz = #{zczyxqz,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + remark1 = #{remark1,jdbcType=VARCHAR}, + remark2 = #{remark2,jdbcType=VARCHAR}, + remark3 = #{remark3,jdbcType=VARCHAR}, + price = #{price,jdbcType=VARCHAR}, + manufactoryCode = #{manufactoryCode,jdbcType=VARCHAR}, + supCode = #{supCode,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} From 3c98777e204f02cca50905aad42c6ee1a9c72aae Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 25 May 2023 20:57:47 +0800 Subject: [PATCH 06/32] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/glxp/api/service/sync/HeartService.java | 3 +-- .../glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) 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 1572fff76..4ceee7bf7 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1618,10 +1618,9 @@ public class HeartService { List> splits = CustomUtil.splitList(supProductList, 100); if (CollUtil.isNotEmpty(splits)) { for (List items : splits) { - supProductDao.replaceBatch(items); + supProductDao.insertOrUpdateBatch(items); } } - } if (CollUtil.isNotEmpty(syncFiles)) { // fileService.download(syncFiles); diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index b486399d1..10a1a9429 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -199,8 +199,6 @@ public class ThrProductsServiceImpl extends ServiceImpl= limit) { page++; } else { @@ -245,7 +243,7 @@ public class ThrProductsServiceImpl extends ServiceImpl= limit) { + if (list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) { page++; } else { break; From 723c863bb22b74aeef1a246ca3679536cec8694b Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 26 May 2023 09:19:59 +0800 Subject: [PATCH 07/32] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=87=8D=E5=A4=8D=E4=B8=8B=E8=BD=BD=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 10a1a9429..27c1d3293 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -199,7 +199,7 @@ public class ThrProductsServiceImpl extends ServiceImpl= limit) { + if (list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) { page++; } else { break; From 111f19641565459a351afb31ce4f465a9583a9ca Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 26 May 2023 09:24:37 +0800 Subject: [PATCH 08/32] =?UTF-8?q?=E8=A7=84=E6=A0=BC=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 27c1d3293..d9ec1a0e0 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -186,6 +186,7 @@ public class ThrProductsServiceImpl extends ServiceImpl Date: Fri, 26 May 2023 09:38:29 +0800 Subject: [PATCH 09/32] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/auth/AuthUserController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/auth/AuthUserController.java b/src/main/java/com/glxp/api/controller/auth/AuthUserController.java index b160cbd3a..f080e0d74 100644 --- a/src/main/java/com/glxp/api/controller/auth/AuthUserController.java +++ b/src/main/java/com/glxp/api/controller/auth/AuthUserController.java @@ -35,6 +35,8 @@ public class AuthUserController extends BaseController { private WarehouseUserService warehouseUserService; @Resource DeptService deptService; + @Resource + CustomerService customerService; @AuthRuleAnnotation("admin/auth/admin/updateInv") @PostMapping("/admin/auth/admin/updateInv") @@ -126,4 +128,12 @@ public class AuthUserController extends BaseController { return ResultVOUtils.success(hospitalUserList); } + //查询用户名信息 + @AuthRuleAnnotation("") + @GetMapping("/admin/auth/admin/selectUser") + public BaseResponse selectUser() { + AuthAdmin authAdmin=customerService.getUserBean(); + return ResultVOUtils.success(authAdmin); + } + } From 8e35509a9358e99e2c32acea31089a2cdc0a4c9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Fri, 26 May 2023 09:45:20 +0800 Subject: [PATCH 10/32] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8C=89=E6=97=B6=E9=97=B4=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mybatis/mapper/purchase/PurApplyDao.xml | 2 +- src/main/resources/mybatis/mapper/purchase/PurOrderDao.xml | 1 + src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mybatis/mapper/purchase/PurApplyDao.xml b/src/main/resources/mybatis/mapper/purchase/PurApplyDao.xml index 3ad289afe..528de21ac 100644 --- a/src/main/resources/mybatis/mapper/purchase/PurApplyDao.xml +++ b/src/main/resources/mybatis/mapper/purchase/PurApplyDao.xml @@ -68,7 +68,7 @@ AND emergency = #{emergency} - + order by pur_apply.updateTime desc + order by pur_order.updateTime desc diff --git a/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml b/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml index e76001bd7..fe93b3a07 100644 --- a/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml +++ b/src/main/resources/mybatis/mapper/purchase/PurPlanDao.xml @@ -62,7 +62,7 @@ AND emergency = #{emergency} - + order by pur_plan.updateTime desc Date: Fri, 26 May 2023 11:06:28 +0800 Subject: [PATCH 11/32] =?UTF-8?q?=E7=89=A9=E8=B5=84=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8C=89=E7=85=A7isDisable=E5=AD=97=E6=AE=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index 6aec7fd5b..e480f0765 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -345,6 +345,9 @@ AND (basic_udirel.isDisable is null or basic_udirel.isDisable = false) + + AND basic_udirel.isDisable = true + and (thirdId LIKE concat('%', #{thrPiId}, '%') or thirdId1 LIKE concat('%', #{thrPiId}, '%') From e954b9b4c2b3532209388fca0d84cf040ae8689f Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 26 May 2023 14:43:50 +0800 Subject: [PATCH 12/32] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/glxp/api/service/inout/IoAddInoutService.java | 1 + .../com/glxp/api/service/inout/impl/IoOrderServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 6ed4135d5..af93077de 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -149,6 +149,7 @@ public class IoAddInoutService { } else { orderEntity.setStatus(ConstantStatus.ORDER_STATS_ERROR); orderEntity.setUpdateTime(new Date()); + orderEntity.setErrMsg(result); orderService.update(orderEntity); insertList.clear(); return; 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 d780f4888..1fad267ac 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 @@ -634,7 +634,7 @@ public class IoOrderServiceImpl implements IoOrderService { filterOrderRequest.setDealStatuses(Arrays.asList(2)); break; case Constant.ORDER_STATUS_CHECKED_ERROR: - filterOrderRequest.setStatuses(Arrays.asList(6)); + filterOrderRequest.setStatuses(Arrays.asList(6,4)); filterOrderRequest.setDealStatuses(Arrays.asList(2)); break; case Constant.ORDER_STATUS_CHECK_SUCCESS: From 7bb00727f303145fac4f5a865997178186176712 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Sat, 27 May 2023 10:50:33 +0800 Subject: [PATCH 13/32] =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=86=85=E9=83=A8=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicOrderPrintController.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java index 41f4d8432..329949f22 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java @@ -88,7 +88,7 @@ public class BasicOrderPrintController { public BaseResponse inspectionStockOrderPDFFromTemplateFile(@RequestBody FilterOrderPrintRequest filterOrderPrintRequest) { - String name=getStatusName(filterOrderPrintRequest.getStatus()); + String name = getStatusName(filterOrderPrintRequest.getStatus()); SysPdfTemplateRelevanceCodeEntity sysPdfTemplateRelevanceCodeEntity = systemPDFTemplateRelevanceCodeService.selectNameAndAction(name, filterOrderPrintRequest.getAction()); if (sysPdfTemplateRelevanceCodeEntity != null) { SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(sysPdfTemplateRelevanceCodeEntity.getTemplateId() + ""); @@ -108,7 +108,7 @@ public class BasicOrderPrintController { @PostMapping("/udiwms/pdf/template/order/file") public void printSupCertProduction(@RequestBody FilterOrderPrintRequest filterOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderPrintRequest.getTemplateId()); - String name=getStatusName(filterOrderPrintRequest.getStatus()); + String name = getStatusName(filterOrderPrintRequest.getStatus()); SysPdfTemplateRelevanceCodeEntity sysPdfTemplateRelevanceCodeEntity = systemPDFTemplateRelevanceCodeService.selectNameAndAction(name, filterOrderPrintRequest.getAction()); //打印单号标签 Map data = new HashMap<>(1); @@ -210,19 +210,19 @@ public class BasicOrderPrintController { 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"); } - public String getStatusName(Integer type){ - String name=""; - if(type==3){ - name="ScanCodeVerification"; - }else if(type==5){ - name="ScanCodeCheck"; - }else if(type==10){ - name="ScanCode"; - }else if(type==7){ - name="ScanCodeAlready"; + public String getStatusName(Integer type) { + String name = ""; + if (type == 3) { + name = "ScanCodeVerification"; + } else if (type == 5) { + name = "ScanCodeCheck"; + } else if (type == 10) { + name = "ScanCode"; + } else if (type == 7) { + name = "ScanCodeAlready"; } return name; } @@ -235,7 +235,7 @@ public class BasicOrderPrintController { @RequestBody FilterOrderPrintRequest filterOrderPrintRequest) throws Exception { //查询模板文件是否存在 - SysPdfTemplateRelevanceStatemenEntity sysPdfTemplateRelevanceStatemenEntity = systemPDFModuleService.selectByStatemenId(filterOrderPrintRequest.getLabelId()+""); + SysPdfTemplateRelevanceStatemenEntity sysPdfTemplateRelevanceStatemenEntity = systemPDFModuleService.selectByStatemenId(filterOrderPrintRequest.getLabelId() + ""); if (null == sysPdfTemplateRelevanceStatemenEntity) { return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); } @@ -280,7 +280,10 @@ public class BasicOrderPrintController { Map bizData = new HashMap<>(); bizData.put("index", i); bizData.put("nameCode", obj.getNameCode() == null ? ' ' : obj.getNameCode()); - bizData.put("udiCode", udiProductEntity.getUuid() == null ? ' ' : udiProductEntity.getUuid()); + String udiCode = "#" + obj.getNameCode() + "#" + obj.getProduceDate() + "#" + obj.getExpireDate() + + "#" + obj.getBatchNo() + "#" + obj.getSerialNo() + "#" + obj.getWarehouseCode() + "#" + obj.getDeptCode(); + udiCode = udiCode.replaceAll("#null", "#"); + bizData.put("udiCode", udiCode); bizData.put("cpmctymc", udiProductEntity.getCpmctymc() == null ? ' ' : udiProductEntity.getCpmctymc()); bizData.put("ggxh", udiProductEntity.getGgxh() == null ? ' ' : udiProductEntity.getGgxh()); bizData.put("batchNo", obj.getBatchNo() == null ? ' ' : obj.getBatchNo()); @@ -300,5 +303,4 @@ public class BasicOrderPrintController { } - } From d23ffecf3b0290d321503f7dcafc6cd9c900af5d Mon Sep 17 00:00:00 2001 From: anthonywj Date: Sat, 27 May 2023 17:54:50 +0800 Subject: [PATCH 14/32] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E4=BA=A7=E5=93=81=E8=A7=84=E6=A0=BC=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/thrsys/impl/ThrProductsServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index d9ec1a0e0..95b2a071f 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -186,7 +186,9 @@ public class ThrProductsServiceImpl extends ServiceImpl Date: Sat, 27 May 2023 18:01:20 +0800 Subject: [PATCH 15/32] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E4=BA=A7=E5=93=81=E8=A7=84=E6=A0=BC=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/thrsys/impl/ThrProductsServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java index 95b2a071f..21f80135c 100644 --- a/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java +++ b/src/main/java/com/glxp/api/service/thrsys/impl/ThrProductsServiceImpl.java @@ -198,6 +198,9 @@ public class ThrProductsServiceImpl extends ServiceImpl Date: Sun, 28 May 2023 19:54:30 +0800 Subject: [PATCH 16/32] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/constant/ConstantStatus.java | 101 +++++++++--------- .../controller/inout/IoOrderController.java | 44 +++++++- .../service/inout/IoCheckInoutService.java | 6 ++ .../glxp/api/service/sync/HeartService.java | 1 + 4 files changed, 99 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index dacbcb24e..d60cc74b9 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -10,86 +10,91 @@ public class ConstantStatus { /** * 等待提交(草稿) */ - public static final Integer ORDER_STATUS_TEMP_SAVE = 1; + public static final int ORDER_STATUS_TEMP_SAVE = 1; /** * 已提交待处理 */ - public static final Integer ORDER_STATUS_PROCESS = 2; + public static final int ORDER_STATUS_PROCESS = 2; /** * 处理成功待校验 */ - public static final Integer ORDER_STATUS_CHECK = 3; + public static final int ORDER_STATUS_CHECK = 3; /** * 处理异常 */ - public static final Integer ORDER_STATS_ERROR = 4; + public static final int ORDER_STATS_ERROR = 4; /** * 待核对 */ - public static final Integer ORDER_STATUS_CHECK_SUCCESS = 5; + public static final int ORDER_STATUS_CHECK_SUCCESS = 5; /** * 校验失败 */ - public static final Integer ORDER_STATUS_CHECK_FAIL = 6; + public static final int ORDER_STATUS_CHECK_FAIL = 6; /** * 待审核 */ - public static final Integer ORDER_STATUS_CHECK_REW = 10; + public static final int ORDER_STATUS_CHECK_REW = 10; /** * 审核通过 */ - public static final Integer ORDER_STATUS_AUDITED = 7; + public static final int ORDER_STATUS_AUDITED = 7; /** * 审核拒绝 */ - public static final Integer ORDER_STATUS_AUDITED_REFUSED = 8; + public static final int ORDER_STATUS_AUDITED_REFUSED = 8; /** * 已提交正在处理 */ - public static final Integer ORDER_STATUS_PROCESSING = 9; + public static final int ORDER_STATUS_PROCESSING = 9; + + /** + * 已提交校验正在处理 + */ + public static final int ORDER_STATUS_CHECK_PROCESS = 12; /** * 业务单已提交待配货 */ - public static final Integer ORDER_STATUS_ALLOCATE = 11; + public static final int ORDER_STATUS_ALLOCATE = 11; - public static final Integer ORDER_DELIVERY_STATUS_UN = 1; - public static final Integer ORDER_DELIVERY_STATUS_ED = 2; + public static final int ORDER_DELIVERY_STATUS_UN = 1; + public static final int ORDER_DELIVERY_STATUS_ED = 2; /** * 单据创建类型 2.新增扫码单据,1、新增业务单据,3、正常单据处理,4:带配货页面 */ - public static final Integer ORDER_TYPE_BIZ = 1; - public static final Integer ORDER_TYPE_SCAN = 2; - public static final Integer ORDER_TYPE_NORMAL = 3; - public static final Integer ORDER_TYPE_WAIT = 4; + public static final int ORDER_TYPE_BIZ = 1; + public static final int ORDER_TYPE_SCAN = 2; + public static final int ORDER_TYPE_NORMAL = 3; + public static final int ORDER_TYPE_WAIT = 4; /** * 供应商自助平台单据类型 */ - public static final Integer BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) - public static final Integer BUS_TYPE_DELIVERY = 2; //送货出入库单据 - public static final Integer BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 - public static final Integer BUS_TYPE_RETURNED = 4; //退货单单据类型 - public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型 + public static final int BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) + public static final int BUS_TYPE_DELIVERY = 2; //送货出入库单据 + public static final int BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 + public static final int BUS_TYPE_RETURNED = 4; //退货单单据类型 + public static final int BUS_TYPE_INVOICE = 4; //退货单单据类型 - public static final Integer ACTION_TYPE_NORMAL = 1; //带票 - public static final Integer ACTION_TYPE_PREIN = 2; //预验收 - public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售 + public static final int ACTION_TYPE_NORMAL = 1; //带票 + public static final int ACTION_TYPE_PREIN = 2; //预验收 + public static final int ACTION_TYPE_ADVANCE = 3; //寄售 public static final int ORDER_SPUSE_NO = 0; //不允许供应商使用 @@ -97,41 +102,41 @@ public class ConstantStatus { public static final int ORDER_SPUSE_EDIT = 2; //允许供应商编辑 - public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 -// public static final Integer ORDER_STATUS_RECEIVEED = 7; + public static final int ORDER_STATUS_ADDITIONAL = 5; //补录单据 +// public static final int ORDER_STATUS_RECEIVEED = 7; //订单处理状态 - public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 - public static final Integer ORDER_DEAL_POST = 2; //已提交,待交接 - public static final Integer ORDER_DEAL_REW = 4; //交接中,待审核 - public static final Integer ORDER_DEAL_CHECK = 3; //已审核 + public static final int ORDER_DEAL_DRAFT = 1; //草稿 + public static final int ORDER_DEAL_POST = 2; //已提交,待交接 + public static final int ORDER_DEAL_REW = 4; //交接中,待审核 + public static final int ORDER_DEAL_CHECK = 3; //已审核 //ERP校验状态 - public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功 - public static final Integer ORDER_CHECK_FAIL = 1; //校验失败 - public static final Integer ORDER_CHECK_UN = 0; //未校验 + public static final int ORDER_CHECK_SUCCESS = 2; //校验成功 + public static final int ORDER_CHECK_FAIL = 1; //校验失败 + public static final int ORDER_CHECK_UN = 0; //未校验 //ERP订单上传状态 - public static final Integer ORDER_EXPORT_UN = 0; //未导出 - public static final Integer ORDER_EXPORT_ED = 1; //已导出 - public static final Integer ORDER_EXPORT_FAIL = 2; //导出失败 + public static final int ORDER_EXPORT_UN = 0; //未导出 + public static final int ORDER_EXPORT_ED = 1; //已导出 + public static final int ORDER_EXPORT_FAIL = 2; //导出失败 //ERP订单签字状态 - public static final Integer ORDER_SIGN_UN = 0; //未签字 - public static final Integer ORDER_SIGN_ED = 1; //已签字 - public static final Integer ORDER_SIGN_FAIL = 2; //签字失败 + public static final int ORDER_SIGN_UN = 0; //未签字 + public static final int ORDER_SIGN_ED = 1; //已签字 + public static final int ORDER_SIGN_FAIL = 2; //签字失败 //UDI产品信息表字段类型 - public static final Integer PRODUCT_TYPE_UDI = 0; - public static final Integer PRODUCT_TYPE_THIRD = 1; + public static final int PRODUCT_TYPE_UDI = 0; + public static final int PRODUCT_TYPE_THIRD = 1; //DI类型 - public static final Integer DI_TYPE_MAIN = 1;//主标识 - public static final Integer DI_TYPE_SYDY = 2;//使用单元 - public static final Integer DI_TYPE_BTBS = 3;//本体标识 - public static final Integer DI_TYPE_BZBS = 4;//包装标识 + public static final int DI_TYPE_MAIN = 1;//主标识 + public static final int DI_TYPE_SYDY = 2;//使用单元 + public static final int DI_TYPE_BTBS = 3;//本体标识 + public static final int DI_TYPE_BZBS = 4;//包装标识 //业务单据状态 @@ -174,8 +179,8 @@ public class ConstantStatus { //采购类型 - public static final Integer PRUCHASE_ADVANCE = 1; //预入库 - public static final Integer PRUCHASE_COMMON = 2; //普通采购 + public static final int PRUCHASE_ADVANCE = 1; //预入库 + public static final int PRUCHASE_COMMON = 2; //普通采购 //往来单位类型 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 7eb29275f..5f389dc1c 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -51,6 +51,10 @@ import java.util.Date; import java.util.List; +import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; +import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_PROCESSING; + + @Slf4j @RestController public class IoOrderController extends BaseController { @@ -192,6 +196,10 @@ public class IoOrderController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitBiz(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; //校验单据是否已完成 List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); @@ -219,7 +227,7 @@ public class IoOrderController extends BaseController { } } - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); return ResultVOUtils.success("提交成功!"); } @@ -237,7 +245,14 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据未扫码或扫码校验无法通过,提交失败,请检查后重新提交!"); } IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); - ioAddInoutService.dealProcess(orderEntity); + + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_TEMP_SAVE) + + ioAddInoutService.dealProcess(orderEntity); //不需要手动校验,则走正常单据校验处理流程 if (!ioCheckInoutService.checkManual(orderEntity.getBillNo())) { @@ -283,6 +298,11 @@ public class IoOrderController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + //校验单据是否已完成 List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); @@ -304,8 +324,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, errMsg); } saveOrderWeb(addOrderRequest); - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderService.update(orderEntity); checkInoutService.check(addOrderRequest.getBillNo()); @@ -313,7 +332,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); } } else { - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); ioAddInoutService.dealProcess(orderEntity); checkInoutService.check(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); @@ -323,6 +342,17 @@ public class IoOrderController extends BaseController { } + public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) { + if (orderEntity.getStatus() == ORDER_STATUS_CHECK_PROCESS || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_PROCESS + || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_PROCESSING) { + return ResultVOUtils.error(500, "提交失败,单据正在处理,请稍后刷新查看!"); + } + if (orderEntity.getStatus() != 1 && orderEntity.getStatus() != 3 && orderEntity.getStatus() != 4 && orderEntity.getStatus() != 6) { + return ResultVOUtils.error(500, "提交失败,单据已提交,请稍后刷新查看!"); + } + return null; + } + //带配货-立即提交 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/waitAllocate/submitOrderWeb") @@ -331,6 +361,10 @@ public class IoOrderController extends BaseController { //校验单据是否已完成 IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index c585e333f..c28978966 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -39,6 +39,8 @@ import java.io.IOException; import java.util.*; import java.util.stream.Collectors; +import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; + /** * 校验出入库服务 */ @@ -121,6 +123,10 @@ public class IoCheckInoutService { //过滤非未校验或校验异常 if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_FAIL) return; + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (!bussinessTypeEntity.isCheckEnable()) { unCheckFirstFinish(orderEntity); 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 4ceee7bf7..20bf45edc 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1351,6 +1351,7 @@ public class HeartService { orderEntity.setUpdateTime(null); orderEntity.setFromType(ConstantStatus.FROM_UDISP); orderEntity.setProcessStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setOrderType(ConstantStatus.ORDER_TYPE_SCAN); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); if (syncDataBustypeEntity != null) { if (syncDataBustypeEntity.getSyncStatus() != null && syncDataBustypeEntity.getSyncStatus().compareTo(1) == 0) { From c87cfdd6415b4e5f53ffdb9cc1420aa790e81a83 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 29 May 2023 14:27:02 +0800 Subject: [PATCH 17/32] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=81=9A=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/controller/inout/IoOrderController.java | 4 ++++ 1 file changed, 4 insertions(+) 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 5f389dc1c..b6301be71 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -412,6 +412,10 @@ public class IoOrderController extends BaseController { @PostMapping("udiwms/inout/order/delete") @Log(title = "单据管理", businessType = BusinessType.DELETE) public BaseResponse deletById(@RequestBody DeleteRequest deleteRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(deleteRequest.getBillNo()); + if (orderEntity.getStatus() != 1 && orderEntity.getStatus() != 3 && orderEntity.getStatus() != 4 && orderEntity.getStatus() != 6) { + return ResultVOUtils.error(500, "单据已提交无法删除!"); + } orderService.deleteByBillNo(deleteRequest.getBillNo()); orderDetailBizService.deleteByOrderId(deleteRequest.getBillNo()); orderDetailCodeService.deleteByOrderId(deleteRequest.getBillNo()); From 847de9c01b902b111b1baa38cbf48cc36ddc5245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Mon, 29 May 2023 15:33:17 +0800 Subject: [PATCH 18/32] =?UTF-8?q?=E6=B1=87=E6=80=BB=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/entity/inout/IoOrderDetailResultEntity.java | 4 ++++ .../java/com/glxp/api/entity/inout/IoStatDayEntity.java | 6 ++++++ .../java/com/glxp/api/entity/inout/IoStatMonthEntity.java | 5 +++++ .../com/glxp/api/entity/inout/IoStatQuarterEntity.java | 3 +++ .../java/com/glxp/api/entity/inout/IoStatYearEntity.java | 4 ++++ .../glxp/api/service/inout/impl/IoStatDayServiceImpl.java | 5 +++-- .../api/service/inout/impl/IoStatMonthServiceImpl.java | 8 +++++--- .../mybatis/mapper/inout/IoOrderDetailResultDao.xml | 4 +++- src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml | 2 +- .../resources/mybatis/mapper/inout/IoStatMonthDao.xml | 2 +- 10 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java index edbbf82de..6de94e6cf 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import javax.validation.Valid; import java.math.BigDecimal; @Data @@ -182,4 +183,7 @@ public class IoOrderDetailResultEntity { @TableField(value = "remark5") private String remark5; + @TableField(exist = false) + private String deptCode; + } diff --git a/src/main/java/com/glxp/api/entity/inout/IoStatDayEntity.java b/src/main/java/com/glxp/api/entity/inout/IoStatDayEntity.java index 6d1175885..552cdeb74 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoStatDayEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoStatDayEntity.java @@ -163,4 +163,10 @@ public class IoStatDayEntity { @TableField(value = "updateTime") private Date updateTime; + @TableField(value = "deptCode") + private String deptCode; + + @TableField(exist = false) + private String deptName; + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoStatMonthEntity.java b/src/main/java/com/glxp/api/entity/inout/IoStatMonthEntity.java index f1f5808d9..88b222d80 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoStatMonthEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoStatMonthEntity.java @@ -157,4 +157,9 @@ public class IoStatMonthEntity { @TableField(value = "updateTime") private Date updateTime; + @TableField(value = "deptCode") + private String deptCode; + + @TableField(exist = false) + private String deptName; } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoStatQuarterEntity.java b/src/main/java/com/glxp/api/entity/inout/IoStatQuarterEntity.java index 88702f579..2b704b881 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoStatQuarterEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoStatQuarterEntity.java @@ -151,4 +151,7 @@ public class IoStatQuarterEntity { @TableField(value = "updateTime") private Date updateTime; + @TableField(value = "deptCode") + private String deptCode; + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoStatYearEntity.java b/src/main/java/com/glxp/api/entity/inout/IoStatYearEntity.java index d65da840e..534434f26 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoStatYearEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoStatYearEntity.java @@ -145,4 +145,8 @@ public class IoStatYearEntity { @TableField(value = "updateTime") private Date updateTime; + @TableField(value = "deptCode") + private String deptCode; + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java index 68840468e..22c8ba1da 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatDayServiceImpl.java @@ -69,7 +69,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { IoStatDayEntity statData = getStatData(dataList, orderDetailResultEntity, yesterday); //查询此单是出库还是入库 - IoOrderEntity order = orderDao.selectOne(new QueryWrapper().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk())); + IoOrderEntity order = orderDao.selectOne(new QueryWrapper().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk()).eq("deptCode",orderDetailResultEntity.getDeptCode())); if (order.getMainAction().equals(ConstantType.TYPE_PUT)) { //入库 statData.setInCount(orderDetailResultEntity.getReCount() + statData.getInCount()); @@ -129,7 +129,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { private IoStatDayEntity getStatData(List dataList, IoOrderDetailResultEntity orderDetailResultEntity, DateTime yesterday) { if (CollUtil.isNotEmpty(dataList)) { for (IoStatDayEntity statDayEntity : dataList) { - if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk())) { + if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk()) && statDayEntity.getDeptCode().equals(orderDetailResultEntity.getDeptCode())) { if ((StrUtil.isNotBlank(statDayEntity.getBatchNo()) && StrUtil.isNotBlank(orderDetailResultEntity.getBatchNo())) && statDayEntity.getBatchNo().equals(orderDetailResultEntity.getBatchNo())) { return statDayEntity; } else if (StrUtil.isBlank(statDayEntity.getBatchNo()) && StrUtil.isBlank(orderDetailResultEntity.getBatchNo())) { @@ -140,6 +140,7 @@ public class IoStatDayServiceImpl implements IoStatDayService { } IoStatDayEntity statData = new IoStatDayEntity(); + statData.setDeptCode(orderDetailResultEntity.getDeptCode()); statData.setYear(yesterday.year()); statData.setQuarter(yesterday.quarter()); statData.setMonth(yesterday.monthBaseOne()); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java index 8e0d41973..7b358c58e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoStatMonthServiceImpl.java @@ -74,7 +74,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { IoStatMonthEntity statData = getStatData(dataList, orderDetailResultEntity, lastMonth); //查询此单是出库还是入库 - IoOrderEntity order = orderDao.selectOne(new QueryWrapper().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk())); + IoOrderEntity order = orderDao.selectOne(new QueryWrapper().select("mainAction").eq("billNo", orderDetailResultEntity.getOrderIdFk()).eq("deptCode",orderDetailResultEntity.getDeptCode())); if (order.getMainAction().equals(ConstantType.TYPE_PUT)) { //入库 statData.setInCount(orderDetailResultEntity.getReCount() + statData.getInCount()); @@ -175,7 +175,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { if (CollUtil.isNotEmpty(dataList)) { for (IoStatMonthEntity statDayEntity : dataList) { - if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk())) { + if (Long.valueOf(statDayEntity.getRelIdFk()).equals(orderDetailResultEntity.getBindRlFk()) && statDayEntity.getDeptCode().equals(orderDetailResultEntity.getDeptCode())) { if ((StrUtil.isNotBlank(statDayEntity.getBatchNo()) && StrUtil.isNotBlank(orderDetailResultEntity.getBatchNo())) && statDayEntity.getBatchNo().equals(orderDetailResultEntity.getBatchNo())) { return statDayEntity; } else if (StrUtil.isBlank(statDayEntity.getBatchNo()) && StrUtil.isBlank(orderDetailResultEntity.getBatchNo())) { @@ -187,6 +187,7 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { IoStatMonthEntity statData = new IoStatMonthEntity(); statData.setYear(lastMonth.year()); + statData.setDeptCode(orderDetailResultEntity.getDeptCode()); statData.setQuarter(lastMonth.quarter()); statData.setMonth(lastMonth.monthBaseOne()); statData.setRelIdFk(String.valueOf(orderDetailResultEntity.getBindRlFk())); @@ -268,7 +269,8 @@ public class IoStatMonthServiceImpl implements IoStatMonthService { .filter(notComment -> { List filtered = newIoStatDayEntity.stream().filter(all -> Objects.equals(all.getBatchNo(), notComment.getBatchNo()) // 使用 Objects.equals 来进行非空判断 - && Objects.equals(all.getRelIdFk(), notComment.getRelIdFk())) + && Objects.equals(all.getRelIdFk(), notComment.getRelIdFk()) + && Objects.equals(all.getDeptCode(), notComment.getDeptCode())) .collect(Collectors.toList()); return filtered.isEmpty(); }).collect(Collectors.toList()); diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 9bb799ab7..d9a82f907 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -84,8 +84,10 @@ coName, spec, price, - reCount + reCount, + io_order.deptCode from io_order_detail_result + left JOIN io_order on io_order.billNo=io_order_detail_result.orderIdFk orderIdFk in diff --git a/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml b/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml index 0139ed839..d9e6bfc46 100644 --- a/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoStatDayDao.xml @@ -2,7 +2,7 @@ - select * + select *, ( SELECT NAME FROM auth_dept WHERE io_stat_month.deptCode = auth_dept.CODE ) deptName from io_stat_month From f81471d4e6a463bde851b9e6ec18f3863dcee4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Mon, 29 May 2023 16:03:09 +0800 Subject: [PATCH 19/32] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java | 4 ++++ .../java/com/glxp/api/service/inout/IoAddInoutService.java | 2 ++ .../service/inout/impl/IoOrderDetailCodeServiceImpl.java | 2 +- .../mybatis/mapper/inout/IoOrderDetailCodeDao.xml | 3 ++- src/main/resources/schemas/schema_v2.1.sql | 7 +++++++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java index 269122ada..35df42577 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailCodeEntity.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; @Data @TableName(value = "io_order_detail_code") @@ -194,5 +195,8 @@ public class IoOrderDetailCodeEntity { @TableField(value = "regStatus") private boolean regStatus; + @TableField(value = "updateTime") + private Date updateTime; + } 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 af93077de..56aabade6 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -327,6 +327,7 @@ public class IoAddInoutService { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.set("count", orderDetailCodeEntity.getCount()).set("reCount", orderDetailCodeEntity.getReCount()); + orderDetailCodeEntity.setUpdateTime(new Date()); orderDetailCodeDao.updateCount(orderDetailCodeEntity); isUpdate = true; break; @@ -691,6 +692,7 @@ public class IoAddInoutService { ioOrderDetailCodeEntity.setPrice(udiRelevanceResponse.getPrice()); ioOrderDetailCodeEntity.setCount(codeTempEntity.getCount()); ioOrderDetailCodeEntity.setReCount(codeTempEntity.getMyReCount()); + ioOrderDetailCodeEntity.setUpdateTime(new Date()); return ioOrderDetailCodeEntity; } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java index 7c3a2b7f3..0c5b22013 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java @@ -40,7 +40,7 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { @Override public List findByOrderId(String orderId) { - return ioOrderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderId)); + return ioOrderDetailCodeDao.selectList(new QueryWrapper().eq("orderIdFk", orderId).orderByDesc("updateTime")); } @Override diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml index 57553e2ae..5512df08f 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml @@ -33,7 +33,8 @@ update io_order_detail_code set count = #{count}, - reCount = #{reCount} + reCount = #{reCount}, + updateTime = #{updateTime} where id = #{id} diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 61a3a9b51..01d592585 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -472,3 +472,10 @@ VALUES (5, 33, 110, 0, NULL, '内部码报表打印', NULL, NULL, NULL, NULL, 'r INSERT ignore INTO `sys_scheduled`(`id`, `cronName`, `cron`, `customerId`, `remark`) VALUES (140, 'dlThrSysHeartTask', '0 0/1 * * * ?', NULL, '第三方接口同步心跳'); + + +CALL Pro_Temp_ColumnWork('io_stat_day', 'deptCode', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('io_stat_month', 'deptCode', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('io_stat_quarter', 'deptCode', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('io_stat_year', 'deptCode', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('io_order_detail_code', 'updateTime', 'datetime', 1); \ No newline at end of file From 906bb7e6a663134b68b833b7bba47e6561d35129 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 29 May 2023 17:56:10 +0800 Subject: [PATCH 20/32] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=AE=A1=E6=A0=B8UDI?= =?UTF-8?q?=E7=A0=81=E5=90=8E=E9=9D=A2=E5=8A=A0GS1=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoOrderReviewController.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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 886fb55c6..d320f4cd8 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -343,13 +343,15 @@ public class IoOrderReviewController extends BaseController { if (StrUtil.isNotEmpty(code)) { code = code.replace("\r\n", ""); } - if (code.endsWith("\u001D")) { code = code.replace("\u001D", ""); } - for (IoCodeEntity checkOrderCodesBean : codesList) { - if (checkOrderCodesBean.getCode().toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) { + String checkCode = checkOrderCodesBean.getCode(); + if (checkCode.endsWith("\u001D")) { + checkCode = checkCode.replace("\u001D", ""); + } + if (checkCode.toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) { if (checkOrderCodesBean.getStatus() == Constant.DB_CHECK_ED && IntUtil.value(checkOrderCodesBean.getReCount()) == checkOrderCodesBean.getScanCount()) { return Constant.CHECK_REPEAT; @@ -367,8 +369,18 @@ public class IoOrderReviewController extends BaseController { public IoCodeEntity isExit(List codeList, String code) { if (CollUtil.isNotEmpty(codeList)) { + if (StrUtil.isNotEmpty(code)) { + code = code.replace("\r\n", ""); + } + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } for (IoCodeEntity codeEntity : codeList) { - if (codeEntity.getCode().equals(code)) { + String checkCode = codeEntity.getCode(); + if (checkCode.endsWith("\u001D")) { + checkCode = checkCode.replace("\u001D", ""); + } + if (checkCode.equals(code)) { return codeEntity; } } From 4b4d6beb7ab2bfad9b59391ea050fc676b9e0778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 11:03:04 +0800 Subject: [PATCH 21/32] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thrsys/ThrBusTypeOriginController.java | 10 +++++----- .../api/controller/thrsys/ThrOrderController.java | 12 ++++++------ .../com/glxp/api/entity/thrsys/ThrOrderEntity.java | 5 +++++ .../com/glxp/api/res/thrsys/ThrOrderResponse.java | 3 ++- .../resources/mybatis/mapper/thrsys/ThrOrderDao.xml | 4 ++-- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrBusTypeOriginController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrBusTypeOriginController.java index 815de039c..459771db5 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrBusTypeOriginController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrBusTypeOriginController.java @@ -105,11 +105,11 @@ public class ThrBusTypeOriginController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (thrBusTypeOriginEntity != null) { - //校验单据类型代码是否重复 -// boolean exists = thrBusTypeOriginService.checkActionExists(thrBusTypeOriginEntity.getAction(), thrBusTypeOriginEntity.getThirdSys()); -// if (exists) { -// return ResultVOUtils.error(500, "单据类型已存在!"); -// } +// 校验单据类型代码是否重复 + boolean exists = thrBusTypeOriginService.checkActionExists(thrBusTypeOriginEntity.getAction(), thrBusTypeOriginEntity.getThirdSys()); + if (exists) { + return ResultVOUtils.error(500, "单据类型已存在!"); + } thrBusTypeOriginService.updateBusOriginType(thrBusTypeOriginEntity); } else { ResultVOUtils.error(999, "参数错误"); diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrOrderController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrOrderController.java index 82f1bcf3b..5d3a31890 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrOrderController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrOrderController.java @@ -286,9 +286,9 @@ public class ThrOrderController { return ResultVOUtils.error(500, "当前任务正在下载更新业务单据信息,请稍后重试!"); } else { redisUtil.set(Constant.dlThrOrders, "true", 10 * 30); - if (filterThrProductsRequest.getBillAction() == null) { - return ResultVOUtils.error(500, "未选择业务类型!"); - } +// if (filterThrProductsRequest.getBillAction() == null) { +// return ResultVOUtils.error(500, "未选择业务类型!"); +// } ThrOrderImportLogEntity thrOrderImportLogEntity = new ThrOrderImportLogEntity(); String genKey = CustomUtil.getId(); @@ -356,8 +356,8 @@ public class ThrOrderController { } //只查询第三方单据 - @GetMapping("/udiwms/thirdOrder/filter") - public BaseResponse filterThirdOrder(FilterThrOrderRequest filterErpOrderRequest, + @PostMapping("/udiwms/thirdOrder/filter") + public BaseResponse filterThirdOrder(@RequestBody FilterThrOrderRequest filterErpOrderRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { @@ -390,7 +390,7 @@ public class ThrOrderController { if (data != null && data.size() > 0) { for (ThrOrderEntity thrOrderEntity : data) { FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest(); - filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + ""); + filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getBillNo() + ""); List thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest); ThrOrderResponse erpOrderResponse = new ThrOrderResponse(); BeanUtils.copyProperties(thrOrderEntity, erpOrderResponse); diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderEntity.java index f1ccaa789..12c69b069 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderEntity.java @@ -47,6 +47,10 @@ public class ThrOrderEntity { @TableField(value = "billType") private String billType; + @TableField(value = "originType") + private String originType; + + /** * 单据类型名称 */ @@ -161,6 +165,7 @@ public class ThrOrderEntity { @TableField(value = "remark") private String remark; + private static final long serialVersionUID = 1L; public static final String COL_ID = "id"; diff --git a/src/main/java/com/glxp/api/res/thrsys/ThrOrderResponse.java b/src/main/java/com/glxp/api/res/thrsys/ThrOrderResponse.java index 6c8bf209f..48da2b62f 100644 --- a/src/main/java/com/glxp/api/res/thrsys/ThrOrderResponse.java +++ b/src/main/java/com/glxp/api/res/thrsys/ThrOrderResponse.java @@ -1,5 +1,6 @@ package com.glxp.api.res.thrsys; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.math.BigDecimal; @@ -37,6 +38,7 @@ public class ThrOrderResponse { private String remark3; //备注3 private String invWarehouseName; private String fromSubInvName; + private String billTypeName; public static class SubErpOrder { private Integer id; @@ -56,7 +58,6 @@ public class ThrOrderResponse { private String detailId; //明细ID private String corpName; //往来单位 private BigDecimal price; //单价 - public String getDetailId() { return detailId; } diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml index 6ddd2a8b8..2d4bd7738 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrOrderDao.xml @@ -6,7 +6,7 @@ resultType="com.glxp.api.entity.thrsys.ThrOrderEntity"> SELECT thr_order.*, thr_bustype_origin.name billTypeName FROM thr_order - left join thr_bustype_origin on thr_order.billType = thr_bustype_origin.action + LEFT JOIN thr_bustype_origin ON thr_order.billType = thr_bustype_origin.action AND billNo = #{billNo} @@ -15,7 +15,7 @@ AND thr_order.id = #{id} - AND billType = #{billAction} + AND thr_bustype_origin.action = #{billAction} AND billFlag = #{billFlag} From 9974b9ec896e0137d43f5ff49a129e759cae071f Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 30 May 2023 11:57:03 +0800 Subject: [PATCH 22/32] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E8=87=AA=E5=8A=A8=E8=A1=A5=E5=8D=95?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/basic/impl/BasicBusTypePreServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java index e549a1122..ebebb17ff 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java @@ -85,8 +85,8 @@ public class BasicBusTypePreServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); wrapper.eq("action", basicBusTypePreEntity.getAction()) - .eq("originAction", basicBusTypePreEntity.getOriginAction()) - .eq("invCode", basicBusTypePreEntity.getInvCode()) +// .eq("originAction", basicBusTypePreEntity.getOriginAction()) + .eq(null !=basicBusTypePreEntity.getInvCode(),"invCode", basicBusTypePreEntity.getInvCode()) .eq(null != basicBusTypePreEntity.getBeforeTime(), "beforeTime", basicBusTypePreEntity.getBeforeTime()) .eq(null != basicBusTypePreEntity.getDefaultInvCode(), "defaultInvCode", basicBusTypePreEntity.getDefaultInvCode()) .eq(null != basicBusTypePreEntity.getSupplementAll(), "supplementAll", basicBusTypePreEntity.getSupplementAll()); From 17a7d9859fea8a4aee205f70ae231b51fa4a9416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 15:00:35 +0800 Subject: [PATCH 23/32] =?UTF-8?q?=E7=89=A9=E8=B5=84=E6=8B=9C=E6=94=BEbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/inv/InvPlaceOrderController.java | 1 - .../glxp/api/entity/inv/InvPlaceOrderDetailEntity.java | 7 +++++++ .../glxp/api/res/inv/InvPlaceOrderDetailResponse.java | 6 ++++++ .../java/com/glxp/api/res/inv/InvPlaceOrderResponse.java | 2 ++ .../api/service/inv/impl/InvPlaceOrderServiceImpl.java | 9 ++++++++- .../resources/mybatis/mapper/inv/InvPlaceOrderDao.xml | 1 + 6 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inv/InvPlaceOrderController.java b/src/main/java/com/glxp/api/controller/inv/InvPlaceOrderController.java index d982dc371..d2c232f86 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPlaceOrderController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPlaceOrderController.java @@ -25,7 +25,6 @@ public class InvPlaceOrderController { public BaseResponse filterList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) { List list = invPlaceOrderService.filterList(filterInvPlaceOrderRequest); PageInfo pageInfo = new PageInfo<>(list); - System.out.println("6666666666666666"); return ResultVOUtils.page(pageInfo); } diff --git a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java index b13f7e6cf..6f725fa58 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java @@ -70,6 +70,13 @@ public class InvPlaceOrderDetailEntity { @TableField(value = "serialNo") private String serialNo; + @TableField(value = "topInvCode") + private String topInvCode; + + @TableField(value = "topInvSpaceCode") + private String topInvSpaceCode; + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/res/inv/InvPlaceOrderDetailResponse.java b/src/main/java/com/glxp/api/res/inv/InvPlaceOrderDetailResponse.java index b4a956549..258e98aba 100644 --- a/src/main/java/com/glxp/api/res/inv/InvPlaceOrderDetailResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvPlaceOrderDetailResponse.java @@ -94,4 +94,10 @@ public class InvPlaceOrderDetailResponse { private String recordId; + private String topInvCode; + + private String topInvSpaceCode; + + private String topInvSpaceName; + } diff --git a/src/main/java/com/glxp/api/res/inv/InvPlaceOrderResponse.java b/src/main/java/com/glxp/api/res/inv/InvPlaceOrderResponse.java index ff200d086..977b167d7 100644 --- a/src/main/java/com/glxp/api/res/inv/InvPlaceOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvPlaceOrderResponse.java @@ -132,5 +132,7 @@ public class InvPlaceOrderResponse { private String manufactory; private Integer count; + + private String topInvSpaceName; } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java index d59bbaa82..dc2f17495 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java @@ -10,8 +10,10 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.dao.auth.InvSpaceDao; import com.glxp.api.dao.auth.InvWarehouseDao; import com.glxp.api.dao.inv.*; +import com.glxp.api.entity.auth.InvSpace; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.inv.*; import com.glxp.api.req.inv.AddInvPlaceOrderRequest; @@ -60,6 +62,8 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { private InvPreProductDetailDao invPreProductDetailDao; @Resource private InvPreInProductDetailDao invPreInProductDetailDao; + @Resource + private InvSpaceDao invSpaceDao; @Override @@ -129,6 +133,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { String produceDate = null; String expireDate = null; String serialNo = null; + InvSpace invSpace=invSpaceDao.selectOne(new QueryWrapper().eq("code", bindInvSpaceRequest.getInvSpaceCode())); InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper().eq("code", bindInvSpaceRequest.getInvCode())); if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { QueryWrapper ew = new QueryWrapper<>(); @@ -189,7 +194,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { InvPlaceOrderEntity orderEntity = new InvPlaceOrderEntity(); orderEntity.setId(IdUtil.getSnowflakeNextId()); orderEntity.setRecordId(recordId); - orderEntity.setType(3); + orderEntity.setType(bindInvSpaceRequest.getType()); // orderEntity.setOrderId(addInvPlaceOrderRequest.getOrderId()); orderEntity.setCreateUser(userId); orderEntity.setCreateTime(new Date()); @@ -202,6 +207,8 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDetailEntity.setRecordId(recordId); invPlaceOrderDetailEntity.setBatchNo(batchNo); invPlaceOrderDetailEntity.setRelId(relId + ""); + invPlaceOrderDetailEntity.setTopInvCode(invSpace.getInvWarehouseCode()); + invPlaceOrderDetailEntity.setTopInvSpaceCode(invSpace.getCode()); invPlaceOrderDetailEntity.setNameCode(nameCode); invPlaceOrderDetailEntity.setExpireDate(expireDate); invPlaceOrderDetailEntity.setProduceDate(produceDate); diff --git a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml index 127afac71..4166ee3e3 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml @@ -12,6 +12,7 @@ (select employeeName from auth_user where id = t.createUser) operatorName, (select name from auth_warehouse where code = t2.invCode) invName, (select name from auth_space where code = t2.invSpaceCode) invSpaceName, + (select name from auth_space where code = t2.topInvSpaceCode) topInvSpaceName, t.createTime, t2.code, t2.batchNo, From 2334016feca16a84579f08c36f265a886b183d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 15:43:51 +0800 Subject: [PATCH 24/32] =?UTF-8?q?=E9=A2=86=E7=94=A8=E7=AE=A1=E7=90=86bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/purchase/PurApplyController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java index 517dfbdf2..84917c33b 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurApplyController.java @@ -108,8 +108,8 @@ public class PurApplyController { /** * 查询申购单列表 */ - @GetMapping("/purchase/apply/list") - public BaseResponse list(PurApplyRequest purApplyRequest) { + @PostMapping("/purchase/apply/list") + public BaseResponse list(@RequestBody PurApplyRequest purApplyRequest) { if (purApplyRequest.getStatus() == null) { purApplyRequest.setStatus(11); //查询未审核和草稿状态 @@ -129,8 +129,8 @@ public class PurApplyController { /** * 查询申购单列表 */ - @GetMapping("/purchase/apply/auditList") - public BaseResponse auditList(PurApplyRequest purApplyRequest) { + @PostMapping("/purchase/apply/auditList") + public BaseResponse auditList(@RequestBody PurApplyRequest purApplyRequest) { if (purApplyRequest.getStatus() == null) { purApplyRequest.setStatus(10); //查询未审核和已审核状态 From e0dc1d264c0d160d75a9878e5381859d55598229 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 30 May 2023 16:09:53 +0800 Subject: [PATCH 25/32] =?UTF-8?q?=20=E5=BA=93=E5=AD=98=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E9=87=8D=E7=BD=AE=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/req/inv/FilterInvRemindMsgRequest.java | 4 ++++ .../resources/mybatis/mapper/inv/InvRemindMsgDao.xml | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java index 9da2dec10..a50df4b52 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvRemindMsgRequest.java @@ -3,6 +3,8 @@ package com.glxp.api.req.inv; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + /** * 查询库存预警消息参数 */ @@ -59,4 +61,6 @@ public class FilterInvRemindMsgRequest extends ListPageRequest { */ private String supId; + private List listInv; + } diff --git a/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml b/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml index e7bbbb679..690058706 100644 --- a/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvRemindMsgDao.xml @@ -54,6 +54,13 @@ AND type = #{type} + + and irm.invCode in + + #{item} + + + order by irm.updateTime desc @@ -84,4 +91,4 @@ - \ No newline at end of file + From ba9711c467f48624bb6935694ed52358b28c371e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 16:19:36 +0800 Subject: [PATCH 26/32] =?UTF-8?q?=E5=BA=93=E5=AD=98=E9=A2=84=E8=AD=A6bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/dao/basic/UdiRelevanceDao.java | 7 +++++++ .../glxp/api/req/inv/FilterInvRemindSetRequest.java | 6 ++++++ .../service/inv/impl/InvRemindSetServiceImpl.java | 4 ++++ .../mybatis/mapper/basic/UdiRelevanceDao.xml | 13 +++++++++++++ .../mybatis/mapper/inv/InvRemindSetDao.xml | 7 +++++++ 5 files changed, 37 insertions(+) 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 e9193b093..3c1998750 100644 --- a/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java +++ b/src/main/java/com/glxp/api/dao/basic/UdiRelevanceDao.java @@ -118,4 +118,11 @@ public interface UdiRelevanceDao extends BaseMapperPlus selectRelIdByName(@Param("productName") String productName); } diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java index 64a76c6a4..54cd78c89 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvRemindSetRequest.java @@ -3,6 +3,8 @@ package com.glxp.api.req.inv; import com.glxp.api.util.page.ListPageRequest; import lombok.Data; +import java.util.List; + /** * 库存预警设置查询参数 */ @@ -34,4 +36,8 @@ public class FilterInvRemindSetRequest extends ListPageRequest { */ private Integer status; + private String productName; + + List relIds; + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java index 0aeebd44f..4acac556c 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java @@ -52,6 +52,10 @@ public class InvRemindSetServiceImpl implements InvRemindSetService { if (null != filterInvRemindSetRequest.getPage() && null != filterInvRemindSetRequest.getLimit()) { PageHelper.offsetPage((filterInvRemindSetRequest.getPage() - 1) * filterInvRemindSetRequest.getLimit(), filterInvRemindSetRequest.getLimit()); } + if(StrUtil.isNotBlank(filterInvRemindSetRequest.getProductName())){ + filterInvRemindSetRequest.setRelIds(udiRelevanceDao.selectRelIdByName(filterInvRemindSetRequest.getProductName())); + } + List list = invRemindSetDao.filterList(filterInvRemindSetRequest); if (CollUtil.isNotEmpty(list)) { list.forEach(invRemindSetResponse -> { diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index e480f0765..9a23e5f8d 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -1256,4 +1256,17 @@ limit 1 + + diff --git a/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml index 8a9f6afee..59d1972ce 100644 --- a/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvRemindSetDao.xml @@ -38,6 +38,13 @@ AND irs.status = #{status} + + AND irs.relId IN + + #{item} + + + order by irs.updateTime desc From 651a0ef65837c7c7d5d260d946f2b963661b32a1 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 30 May 2023 16:59:12 +0800 Subject: [PATCH 27/32] =?UTF-8?q?=E5=86=85=E9=83=A8=E7=A0=81=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E9=97=AE=E9=A2=98=EF=BC=8C=E5=90=AF=E7=94=A8=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=8D=95=E5=85=83=E6=95=B0=E9=87=8F=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E7=94=B3=E8=B4=AD=E7=B3=BB=E7=BB=9F=E7=B9=81=E5=BF=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/BasicOrderPrintController.java | 2 +- .../inout/IoOrderReviewController.java | 2 +- .../CompanyProductRelevanceResponse.java | 2 +- .../glxp/api/res/basic/UdiRlSupResponse.java | 2 +- .../api/res/inv/InvRemindMsgResponse.java | 2 +- .../impl/InvInnerOrderPrintServiceImpl.java | 4 +-- .../glxp/api/util/udi/UdiCalCountUtil.java | 32 +++++++++++++------ 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java index 329949f22..cb2706896 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicOrderPrintController.java @@ -281,7 +281,7 @@ public class BasicOrderPrintController { bizData.put("index", i); bizData.put("nameCode", obj.getNameCode() == null ? ' ' : obj.getNameCode()); String udiCode = "#" + obj.getNameCode() + "#" + obj.getProduceDate() + "#" + obj.getExpireDate() + - "#" + obj.getBatchNo() + "#" + obj.getSerialNo() + "#" + obj.getWarehouseCode() + "#" + obj.getDeptCode(); + "#" + obj.getBatchNo() + "#" + obj.getSerialNo() + "#" + "#" ; udiCode = udiCode.replaceAll("#null", "#"); bizData.put("udiCode", udiCode); bizData.put("cpmctymc", udiProductEntity.getCpmctymc() == null ? ' ' : udiProductEntity.getCpmctymc()); 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 d320f4cd8..5d5bca6c3 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -352,7 +352,7 @@ public class IoOrderReviewController extends BaseController { checkCode = checkCode.replace("\u001D", ""); } if (checkCode.toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) { - if (checkOrderCodesBean.getStatus() == Constant.DB_CHECK_ED + if (IntUtil.value(checkOrderCodesBean.getStatus()) == Constant.DB_CHECK_ED && IntUtil.value(checkOrderCodesBean.getReCount()) == checkOrderCodesBean.getScanCount()) { return Constant.CHECK_REPEAT; } diff --git a/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java index f9f051b79..68bb07357 100644 --- a/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/CompanyProductRelevanceResponse.java @@ -6,7 +6,7 @@ import lombok.Data; public class CompanyProductRelevanceResponse { private Long id; - private Integer rlId; + private Long rlId; private String thirdId; private String thirdName; private String uuid; diff --git a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java index dcf95d039..ba5cfb319 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java @@ -6,7 +6,7 @@ import lombok.Data; public class UdiRlSupResponse { private Long id; - private Integer rlId; + private Long rlId; private String thirdId; private String thirdName; private String uuid; diff --git a/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java b/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java index 8107656f8..2098c008f 100644 --- a/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java +++ b/src/main/java/com/glxp/api/res/inv/InvRemindMsgResponse.java @@ -15,7 +15,7 @@ public class InvRemindMsgResponse { /** * 关联主键ID */ - private Integer relId; + private Long relId; /** * 批次号 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 54b53f645..2e2b389e2 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 @@ -119,7 +119,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService UdiProductEntity udiProductEntity = udiProductService.findByNameCode(filterUdiRelevance.getNameCode()); String udiCode = "#" + udiProductEntity.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() + - "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode(); + "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + "#"; udiCode = udiCode.replaceAll("#null", "#"); innerOrderPrintEntity.setUdiCode(udiCode); invInnerOrderPrintDao.insert(innerOrderPrintEntity); @@ -288,7 +288,7 @@ public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService UdiProductEntity udiProductEntity = udiProductService.findByNameCode(filterUdiRelevance.getNameCode()); String udiCode = "#" + obj.getNameCode() + "#" + obj.getProductDate() + "#" + obj.getExpireDate() + - "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode(); + "#" + obj.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + "#"; udiCode = udiCode.replaceAll("#null", "#"); innerOrderPrintEntity.setUdiCode(udiCode); invInnerOrderPrintDao.insert(innerOrderPrintEntity); diff --git a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java index 2270c94aa..44d964660 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiCalCountUtil.java @@ -20,24 +20,36 @@ public class UdiCalCountUtil { // } public int getActCount(UdiRelevanceResponse udiRelevanceResponse) { - int actCount; - if (!udiRelevanceResponse.getUseDy() && (udiRelevanceResponse.getDiType() == null || udiRelevanceResponse.getDiType() != 2)) { - if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { - actCount = udiRelevanceResponse.getZxxsbzbhsydysl(); - } else { + //启用使用单元 + if (udiRelevanceResponse.getUseDy()) { + if (udiRelevanceResponse.getDiType() == 1) { + if (udiRelevanceResponse.getZxxsbzbhsydysl() == null || udiRelevanceResponse.getZxxsbzbhsydysl() == 0) { + udiRelevanceResponse.setZxxsbzbhsydysl(1); + } + return udiRelevanceResponse.getZxxsbzbhsydysl(); + } else if (udiRelevanceResponse.getDiType() == 4) { if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { udiRelevanceResponse.setBhzxxsbzsl(1); } if (udiRelevanceResponse.getZxxsbzbhsydysl() == null || udiRelevanceResponse.getZxxsbzbhsydysl() == 0) { udiRelevanceResponse.setZxxsbzbhsydysl(1); } - actCount = udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl(); + return udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl(); + } else { + return udiRelevanceResponse.getBhzxxsbzsl(); + } + } else {//不启用使用单元 + if (udiRelevanceResponse.getDiType() == 1) { + return 1; + } else if (udiRelevanceResponse.getDiType() == 4) { + if (udiRelevanceResponse.getBhzxxsbzsl() == 0) { + udiRelevanceResponse.setBhzxxsbzsl(1); + } + return udiRelevanceResponse.getBhzxxsbzsl(); + } else { + return udiRelevanceResponse.getBhzxxsbzsl(); } - } else { - actCount = udiRelevanceResponse.getBhzxxsbzsl(); } - - return actCount; } public int getActCount(IoCodeTempEntity codeTempEntity) { From 673006306a7c10f5c97126624c72dbcd328183c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 17:09:31 +0800 Subject: [PATCH 28/32] =?UTF-8?q?=E9=A2=84=E9=AA=8C=E6=94=B6=E5=BA=93?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mybatis/mapper/inv/InvPreinProductDao.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/mybatis/mapper/inv/InvPreinProductDao.xml b/src/main/resources/mybatis/mapper/inv/InvPreinProductDao.xml index 1fb50cf95..97ea4c22f 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPreinProductDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPreinProductDao.xml @@ -158,7 +158,8 @@ auth_warehouse.name invName, asp.name spaceName, ipp.deptCode, - ipp.invCode + ipp.invCode, + basic_udirel.id relIdFk from inv_prein_product_detail ipp inner join basic_udirel on ipp.relId = basic_udirel.id inner join basic_products bp on basic_udirel.uuid = bp.uuid From 0c4e94a3086dfd625c554f21fd5e7134f1776237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 17:27:58 +0800 Subject: [PATCH 29/32] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=A1=A5=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8E=A8=E8=BF=9Fbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/IoPurChangeService.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) 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 66b3723b8..6be65a21d 100644 --- a/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java +++ b/src/main/java/com/glxp/api/controller/purchase/IoPurChangeService.java @@ -136,10 +136,13 @@ public class IoPurChangeService { purPlanEntity.setInvCode(purApplyEntity.getInvCode()); purPlanEntity.setDeptCode(purApplyEntity.getDeptCode()); purPlanEntity.setCreateUser(purApplyEntity.getAuditUser()); - //purPlanEntity.setCreateTime(DateUtil.timeProcess(purApplyEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); - purPlanEntity.setCreateTime(purApplyEntity.getCreateTime()); - purPlanEntity.setUpdateUser(purApplyEntity.getAuditUser()); - //purPlanEntity.setUpdateTime(DateUtil.timeProcess(purApplyEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + if (basicBusTypeChangeEntity.getBusBeforeTime() != null) { + purPlanEntity.setCreateTime(DateUtil.timeProcess(purApplyEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + purPlanEntity.setUpdateTime(DateUtil.timeProcess(purApplyEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + }else{ + purPlanEntity.setCreateTime(purApplyEntity.getCreateTime()); + purPlanEntity.setUpdateUser(purApplyEntity.getAuditUser()); + } purPlanEntity.setUpdateTime(purApplyEntity.getUpdateTime()); if (purPlanEntity.getStatus() == 3) { purPlanEntity.setAuditUser(""); @@ -196,9 +199,14 @@ public class IoPurChangeService { purOrderEntity.setInvCode(purPlanEntity.getInvCode()); purOrderEntity.setDeptCode(purPlanEntity.getDeptCode()); purOrderEntity.setCreateUser(purPlanEntity.getAuditUser()); - purOrderEntity.setCreateTime(DateUtil.timeProcess(purPlanEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); purOrderEntity.setUpdateUser(purPlanEntity.getAuditUser()); - purOrderEntity.setUpdateTime(DateUtil.timeProcess(purPlanEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + if (basicBusTypeChangeEntity.getBusBeforeTime() != null) { + purPlanEntity.setCreateTime(DateUtil.timeProcess(purOrderEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + purPlanEntity.setUpdateTime(DateUtil.timeProcess(purOrderEntity.getCreateTime(), basicBusTypeChangeEntity.getBusBeforeTime())); + }else{ + purPlanEntity.setCreateTime(purOrderEntity.getCreateTime()); + purPlanEntity.setUpdateUser(purOrderEntity.getAuditUser()); + } if (purOrderEntity.getStatus() == 3) { purOrderEntity.setAuditUser(""); purOrderEntity.setAuditTime(new Date()); @@ -348,7 +356,6 @@ public class IoPurChangeService { } - if (basicProductsEntity != null && basicProductsEntity.getZczbhhzbapzbh() != null) { ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh()); } @@ -367,7 +374,7 @@ public class IoPurChangeService { // if (basicProductsEntity.getPrice() != null) { // ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); // } - if (basicProductsEntity.getPrice() != null&& basicProductsEntity.getPrice() != null) { + if (basicProductsEntity.getPrice() != null && basicProductsEntity.getPrice() != null) { ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); } ioOrderDetailBizEntity.setSupId(obj.getSupId()); From a6f82a7812384572447d6af13fb214fbf0887b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Tue, 30 May 2023 18:25:30 +0800 Subject: [PATCH 30/32] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E8=AE=BE=E7=BD=AEbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/inv/impl/InvRemindSetServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java index 4acac556c..616722fce 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvRemindSetServiceImpl.java @@ -52,7 +52,7 @@ public class InvRemindSetServiceImpl implements InvRemindSetService { if (null != filterInvRemindSetRequest.getPage() && null != filterInvRemindSetRequest.getLimit()) { PageHelper.offsetPage((filterInvRemindSetRequest.getPage() - 1) * filterInvRemindSetRequest.getLimit(), filterInvRemindSetRequest.getLimit()); } - if(StrUtil.isNotBlank(filterInvRemindSetRequest.getProductName())){ + if (StrUtil.isNotBlank(filterInvRemindSetRequest.getProductName())) { filterInvRemindSetRequest.setRelIds(udiRelevanceDao.selectRelIdByName(filterInvRemindSetRequest.getProductName())); } @@ -233,13 +233,13 @@ public class InvRemindSetServiceImpl implements InvRemindSetService { if (null == udiRelevanceEntity) { invRemindSetEntity.setStatus(0); } else { - if (invRemindSetEntity.getLowStock() && null == udiRelevanceEntity.getLowStockNum()) { + if (!invRemindSetEntity.getLowStock() && null == udiRelevanceEntity.getLowStockNum() && + !invRemindSetEntity.getOverStock() && null == udiRelevanceEntity.getOverStockNum() && + !invRemindSetEntity.getRecentDate() && null == udiRelevanceEntity.getRecentDateTime() && + !invRemindSetEntity.getExpireDate() && !invRemindSetEntity.getLackStock()) { invRemindSetEntity.setStatus(0); - } else if (invRemindSetEntity.getOverStock() && null == udiRelevanceEntity.getOverStockNum()) { - invRemindSetEntity.setStatus(0); - } else if (invRemindSetEntity.getRecentDate() && null == udiRelevanceEntity.getRecentDateTime()) { - invRemindSetEntity.setStatus(0); - } else { + } else if (invRemindSetEntity.getLowStock() || invRemindSetEntity.getLackStock() || + invRemindSetEntity.getOverStock() || invRemindSetEntity.getRecentDate() || invRemindSetEntity.getExpireDate()) { invRemindSetEntity.setStatus(1); } } From f8d481facc2133dd2c1bdb57ddaa247bc2dc1b28 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Wed, 31 May 2023 09:39:54 +0800 Subject: [PATCH 31/32] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoOrderDetailBizController.java | 18 +++++++- .../api/req/inv/FilterInvoiceRequest.java | 41 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/glxp/api/req/inv/FilterInvoiceRequest.java 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 1c09557ad..89dc47d1b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -2,6 +2,7 @@ package com.glxp.api.controller.inout; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; @@ -28,6 +29,7 @@ import com.glxp.api.entity.thrsys.ThrOrderDetailEntity; import com.glxp.api.entity.thrsys.ThrOrderEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.req.inout.*; +import com.glxp.api.req.inv.FilterInvoiceRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -56,6 +58,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -615,7 +618,6 @@ public class IoOrderDetailBizController extends BaseController { } - @PostMapping("/udiwms/inout/biz/insertInvoice") @Log(title = "发票管理", businessType = BusinessType.INSERT) public BaseResponse insertInvoice(@RequestBody IoOrderInvoiceEntity ioOrderInvoice) { @@ -644,6 +646,20 @@ public class IoOrderDetailBizController extends BaseController { } + //解析发票二维码 + @GetMapping("/udiwms/inout/biz/parseInvoice") + public BaseResponse parseInvoice(String code) { + List list = Arrays.asList(code.split(",")); + FilterInvoiceRequest filterInvoiceRequest = new FilterInvoiceRequest(); + filterInvoiceRequest.setType(list.get(1)); + filterInvoiceRequest.setInvoiceCode(list.get(2)); + filterInvoiceRequest.setInvoiceEncode(list.get(3)); + filterInvoiceRequest.setPrice(new BigDecimal(list.get(4))); + filterInvoiceRequest.setInvoiceDate(DateUtil.formatDateTime(DateUtil.parse(list.get(5), "yyyyMMdd"))); + return ResultVOUtils.success(filterInvoiceRequest); + } + + @PostMapping("/udiwms/inout/biz/updateorderBiz") public BaseResponse updateorderBiz(@RequestBody List list) { for (IoOrderDetailCodeEntity ioOrderDetailBizEntity : list) { diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvoiceRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvoiceRequest.java new file mode 100644 index 000000000..c7a869629 --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/FilterInvoiceRequest.java @@ -0,0 +1,41 @@ +package com.glxp.api.req.inv; + +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 查询库存预警消息参数 + */ +@Data +public class FilterInvoiceRequest extends ListPageRequest { + + + /** + * 预警类型:10:增值税电子普通发票;01:增值税专用发票;04:增值税普通发票;32:电子发票(普通发票);31:电子发票(增值税专用发票) + */ + private String type; + + /** + * 发票代码 + */ + private String invoiceCode; + + /** + * 发票编码 + */ + private String invoiceEncode; + + /** + * 开票日期 + */ + private String invoiceDate; + + + /** + * 发票价格 + */ + private BigDecimal price; + +} From ff449d6371f074b523b22afa10f32180046e49ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Wed, 31 May 2023 10:50:08 +0800 Subject: [PATCH 32/32] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E8=AE=BE=E7=BD=AEbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/service/inout/IoCheckInoutService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 c28978966..7b97a2176 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -121,7 +121,8 @@ public class IoCheckInoutService { public void check(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); //过滤非未校验或校验异常 - if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_FAIL) + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_PROCESS && + orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_FAIL) return; orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);