From dc788942217b5dd53703e065b05acebf1343343d Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 25 Jul 2023 09:51:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=8A=A9?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=B8=8EUDI=E7=AE=A1=E7=90=86=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=BA=93=E5=AD=98=E6=A0=A1=E9=AA=8C=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 1 - .../glxp/api/http/sync/SpGetHttpClient.java | 62 ++++++- .../java/com/glxp/api/task/VailInvTask.java | 173 ++++++++++++++++++ 3 files changed, 229 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/glxp/api/task/VailInvTask.java diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index cc237bb62..e2aaa6e44 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1214,7 +1214,6 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) && codeTempEntity.getBatchNo().length() > 20) { return ResultVOUtils.error(500, "无效条码!批次号超出最大范围"); } - if (StrUtil.isBlank(codeTempEntity.getSerialNo()) && StrUtil.isBlank(codeTempEntity.getBatchNo())) { return ResultVOUtils.error(500, "批次号不能为空!"); } diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index 2687a3cf9..1494dcf37 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -22,10 +22,14 @@ import com.glxp.api.req.sync.OrderStatusFilterRequest; import com.glxp.api.req.sync.SyncUpLoadRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.RefreshInoiceResponse; +import com.glxp.api.res.inv.InvPreProductResponse; +import com.glxp.api.res.inv.InvPreinProductResponse; +import com.glxp.api.res.inv.InvProductResponse; import com.glxp.api.res.sync.*; import com.glxp.api.res.system.SyncDataSetResponse; import com.glxp.api.service.sync.SyncDataSetService; import com.glxp.api.util.OkHttpCli; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -438,12 +442,58 @@ public class SpGetHttpClient { public BaseResponse postTemplateFile(List fileNameList) { return fileService.upload(fileNameList); + } -// String json = JSONUtil.toJsonStr(fileNameList); -// String result = okHttpCli.doPostJson(getIpUrl() + "/spssync/file/download", json, buildHeader()); -// BaseResponse response = -// JSONObject.parseObject(result, new TypeReference>() { -// }); -// return response; + //下载普通库存 + public BaseResponse> getInvData(Integer page, Integer limit) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page + ""); + paramMap.put("limit", limit + ""); + String response = okHttpCli.doGet(getIpUrl() + "/syncToSpms" + "/spms/inv/product/vail", paramMap, buildHeader()); + try { + BaseResponse> data = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } } + + //下载寄售库存 + public BaseResponse> getInvPreData(Integer page, Integer limit) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page + ""); + paramMap.put("limit", limit + ""); + String response = okHttpCli.doGet(getIpUrl() + "/syncToSpms" + "/spms/inv/pre/product/vail", paramMap, buildHeader()); + try { + BaseResponse> data = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } + + //下载预验收库存 + public BaseResponse> getInvPreInData(Integer page, Integer limit) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page + ""); + paramMap.put("limit", limit + ""); + String response = okHttpCli.doGet(getIpUrl() + "/syncToSpms" + "/spms/inv/preIn/product/vail", paramMap, buildHeader()); + try { + BaseResponse> data = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return data; + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } + + } diff --git a/src/main/java/com/glxp/api/task/VailInvTask.java b/src/main/java/com/glxp/api/task/VailInvTask.java new file mode 100644 index 000000000..058d362e1 --- /dev/null +++ b/src/main/java/com/glxp/api/task/VailInvTask.java @@ -0,0 +1,173 @@ +package com.glxp.api.task; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.dao.schedule.ScheduledDao; +import com.glxp.api.entity.inv.InvPreProductEntity; +import com.glxp.api.entity.inv.InvPreinProductEntity; +import com.glxp.api.entity.inv.InvProductEntity; +import com.glxp.api.entity.system.ScheduledEntity; +import com.glxp.api.http.sync.SpGetHttpClient; +import com.glxp.api.req.system.ScheduledRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.inv.InvProductResponse; +import com.glxp.api.service.inv.InvPreProductService; +import com.glxp.api.service.inv.InvPreinProductService; +import com.glxp.api.service.inv.InvProductService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Slf4j +@Component +@Transactional(rollbackFor = Exception.class) +public class VailInvTask implements SchedulingConfigurer { + + + @Resource + private ScheduledDao scheduledDao; + @Resource + SpGetHttpClient spGetHttpClient; + + @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()) { + log.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + } else + return null; + + }); + } + + private void process() { + + StringBuffer stringBuffer = new StringBuffer(); + String invStr = downloadInv(); + String invPreStr = downloadPreInv(); + String invPreInStr = downloadPreInInv(); + stringBuffer.append("------------普通库存-----------------------\n"); + stringBuffer.append(invStr); + stringBuffer.append("------------寄售库存-----------------------\n"); + stringBuffer.append(invPreStr); + stringBuffer.append("------------预验收库存-----------------------\n"); + stringBuffer.append(invPreInStr); + + + + } + + @Resource + InvProductService invProductService; + @Resource + InvPreinProductService invPreinProductService; + @Resource + InvPreProductService invPreProductService; + + public String downloadInv() { + int page = 1; + int limit = 100; + StringBuffer buffer = new StringBuffer(); + while (true) { + BaseResponse> baseResponse = spGetHttpClient.getInvData(page, limit); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + list.forEach(invProductResponse -> { + InvProductEntity invProductEntity = invProductService.selectByUnique(Long.getLong(invProductResponse.getRelIdFk()), invProductResponse.getBatchNo(), invProductResponse.getSupId(), invProductResponse.getDeptCode(), invProductResponse.getInvCode()); + if (invProductEntity.getInCount() != invProductResponse.getInCount() || invProductEntity.getOutCount() != invProductResponse.getOutCount()) { + buffer.append(invProductResponse.getCpmctymc() + "," + + invProductResponse.getNameCode() + "," + + invProductResponse.getBatchNo() + "," + + invProductResponse.getSupName() + "," + + invProductResponse.getDeptName() + "," + + invProductResponse.getInvCode() + "\n"); + } + }); + if (list.size() >= limit) { + page++; + } else { + break; + } + } else { + return buffer.toString(); + } + } + return buffer.toString(); + } + + public String downloadPreInv() { + int page = 1; + int limit = 100; + StringBuffer buffer = new StringBuffer(); + while (true) { + BaseResponse> baseResponse = spGetHttpClient.getInvData(page, limit); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + list.forEach(invProductResponse -> { + InvPreProductEntity invProductEntity = invPreProductService.selectByUnique(Long.getLong(invProductResponse.getRelIdFk()), invProductResponse.getBatchNo(), invProductResponse.getSupId(), invProductResponse.getDeptCode(), invProductResponse.getInvCode()); + if (invProductEntity.getInCount() != invProductResponse.getInCount() || invProductEntity.getOutCount() != invProductResponse.getOutCount()) { + buffer.append(invProductResponse.getCpmctymc() + "," + + invProductResponse.getNameCode() + "," + + invProductResponse.getBatchNo() + "," + + invProductResponse.getSupName() + "," + + invProductResponse.getDeptName() + "," + + invProductResponse.getInvCode() + "\n"); + } + }); + if (list.size() >= limit) { + page++; + } else { + break; + } + } else { + return buffer.toString(); + } + } + return buffer.toString(); + } + + public String downloadPreInInv() { + int page = 1; + int limit = 100; + StringBuffer buffer = new StringBuffer(); + while (true) { + BaseResponse> baseResponse = spGetHttpClient.getInvData(page, limit); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + list.forEach(invProductResponse -> { + InvPreinProductEntity invProductEntity = invPreinProductService.selectByUnique(Long.getLong(invProductResponse.getRelIdFk()), invProductResponse.getBatchNo(), invProductResponse.getSupId(), invProductResponse.getDeptCode(), invProductResponse.getInvCode()); + if (invProductEntity.getInCount() != invProductResponse.getInCount() || invProductEntity.getOutCount() != invProductResponse.getOutCount()) { + buffer.append(invProductResponse.getCpmctymc() + "," + + invProductResponse.getNameCode() + "," + + invProductResponse.getBatchNo() + "," + + invProductResponse.getSupName() + "," + + invProductResponse.getDeptName() + "," + + invProductResponse.getInvCode() + "\n"); + } + }); + if (list.size() >= limit) { + page++; + } else { + break; + } + } else { + return buffer.toString(); + } + } + return buffer.toString(); + } + +} From 6daef0a5671fbc2a7ba2fd181fb6329192a2564a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B3=BD=E8=85=BE?= <1178634255@qq.com> Date: Tue, 25 Jul 2023 11:07:04 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=9B=B4=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurApplyDetailImplService.java | 21 +++++++++++++------ .../mybatis/mapper/basic/UdiRelevanceDao.xml | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurApplyDetailImplService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurApplyDetailImplService.java index 42d076398..326005595 100644 --- a/src/main/java/com/glxp/api/service/purchase/impl/PurApplyDetailImplService.java +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurApplyDetailImplService.java @@ -90,17 +90,26 @@ public class PurApplyDetailImplService implements PurApplyDetailService { @Override public List getDetailList(PurApplyDetailRequest purApplyDetailRequest) { - if (null == purApplyDetailRequest) { +// if (null == purApplyDetailRequest) { +// return Collections.emptyList(); +// } +// if (purApplyDetailRequest.getPage() == null) +// purApplyDetailRequest.setPage(1); +// if (purApplyDetailRequest.getLimit() == null) { +// purApplyDetailRequest.setLimit(10); +// } +// PageHelper.offsetPage((purApplyDetailRequest.getPage() - 1) * purApplyDetailRequest.getLimit(), purApplyDetailRequest.getLimit()); + if (purApplyDetailRequest == null) { return Collections.emptyList(); } - if (purApplyDetailRequest.getPage() == null) - purApplyDetailRequest.setPage(1); - if (purApplyDetailRequest.getLimit() == null) { - purApplyDetailRequest.setLimit(10); + if (purApplyDetailRequest.getPage() != null) { + int offset = (purApplyDetailRequest.getPage() - 1) * purApplyDetailRequest.getLimit(); + PageHelper.offsetPage(offset, purApplyDetailRequest.getLimit()); } - PageHelper.offsetPage((purApplyDetailRequest.getPage() - 1) * purApplyDetailRequest.getLimit(), purApplyDetailRequest.getLimit()); return purApplyDetailDao.selectPurApplyDetailList(purApplyDetailRequest); + } + } diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index 912ed505d..482789d11 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -765,7 +765,7 @@ basic_products.sfwblztlcp, basic_products.cgzmraqxgxx, basic_products.sfbjwycxsy, - basic_products.zdcfsycs, +-- basic_products.zdcfsycs, basic_products.sfwwjbz, basic_products.syqsfxyjxmj, basic_products.mjfs, From 0f73bcb8d5850f695c3ca3f6fae0f1711dc52a0a Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 25 Jul 2023 11:30:57 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=97=A0=E5=BA=8F?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E8=BF=9B=E8=A1=8C=E5=87=BA=E5=BA=93=E6=97=B6?= =?UTF-8?q?=20=E5=B0=86=E6=95=B0=E9=87=8F=E7=BC=96=E8=BE=91=E6=88=90?= =?UTF-8?q?=E7=BB=93=E4=BD=99=E6=95=B0=E9=87=8F=20=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=B8=8D=E8=B6=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/controller/inout/IoCodeTempController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index e2aaa6e44..b5c4779d9 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1062,7 +1062,7 @@ public class IoCodeTempController extends BaseController { } else { //查询此单据已扫描的条码数量 int exitCount = IntUtil.value(codeTempService.selectExitCount(codeTempEntity.getOrderId(), codeTempEntity.getBatchNo(), codeTempEntity.getRelId(), codeTempEntity.getSupId())); - if ((codeTempEntity.getMyReCount() + exitCount) > count) { + if (codeTempEntity.getMyReCount() > count) { return ResultVOUtils.error(500, "当前库存不足"); } } From 7f6f78f776b68f9b6c7e7096a7e8902992201bb7 Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 25 Jul 2023 16:49:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E5=8D=95=E6=8D=AE=E6=B5=81=E8=BD=AC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=AD=20=E6=97=A0=E6=B3=95=E5=88=87?= =?UTF-8?q?=E6=8D=A2=20=E5=AE=A1=E6=A0=B8=E7=8A=B6=E6=80=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= 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, 3 insertions(+), 1 deletion(-) 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 7f96a9acc..a3843d8ff 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 @@ -89,7 +89,9 @@ public class BasicBusTypePreServiceImpl extends ServiceImpl list = basicBusTypePreDao.selectList(wrapper); if (CollUtil.isNotEmpty(list)) {