diff --git a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java index 310d10ed7..2139f78e0 100644 --- a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java +++ b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java @@ -25,8 +25,8 @@ public class BasicProcessStatus { public static final int BASIC_THIRD_PRODUCTS = 4; //往来单位 public static final int BASIC_THIRD_CORP = 5; //往来单位 public static final int BASIC_THIRD_ORDER = 6; //往来单位 - public static final int NEW_ALL_DATA = 7; //所有最新数据 - public static final int NEW_ALL_BUS = 8; + public static final String NEW_ALL_DATA = "7"; //所有最新数据 + public static final String NEW_ALL_BUS = "8"; public static final String NEW_ALL_ORDER = "9"; public static final String ALL_BUS_ORDER = "11"; public static final int NEW_ALL_DI = 10; 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 f2b06c582..37cbb6f85 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -18,16 +18,20 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.system.SystemParamConfigEntity; +import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.ReviewFinishRequest; +import com.glxp.api.req.inout.ReviewSpmsRequest; import com.glxp.api.req.inout.UpdateExportStatusRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.AcceptOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; +import com.glxp.api.res.sync.SpsSyncOrderResponse; import com.glxp.api.service.auth.AuthAdminService; import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; +import com.glxp.api.service.sync.HeartService; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.GennerOrderUtils; @@ -372,6 +376,7 @@ public class IoOrderReviewController extends BaseController { return false; } + //前端页面清空,重新验收 @AuthRuleAnnotation("") @PostMapping("/udiwms/stock/order/acceptClear") public BaseResponse acceptClear(@RequestBody AcceptOrderResponse acceptOrderEntity) { @@ -394,6 +399,13 @@ public class IoOrderReviewController extends BaseController { orderService.update(orderEntity); redisUtil.del(ConstantStatus.REDIS_BILLNO + orderEntity.getBillNo()); redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + orderEntity.getBillNo()); + + if (orderEntity.getFromType() == ConstantStatus.FROM_UDISP) { + ReviewFinishRequest reviewFinishRequest = new ReviewFinishRequest(); + reviewFinishRequest.setOrderId(orderEntity.getBillNo()); + spGetHttp.reviewOrder(reviewFinishRequest); + } + //验收完成->进入流程 ioCheckInoutService.checkSecond(orderEntity); return ResultVOUtils.success("更新成功"); @@ -414,4 +426,66 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success("更新成功"); } + + @Resource + HeartService heartService; + @Resource + SpGetHttpClient spGetHttp; + + // 新增扫码验收单,本地不存在拉去自助平台待验收单 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/order/reviewSpms") + public BaseResponse reviewSpms(@RequestBody ReviewSpmsRequest reviewSpmsRequest) { + + String billNo = reviewSpmsRequest.getBillNo(); + if (StrUtil.isEmpty(reviewSpmsRequest.getBillNo())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); + acceptOrderEntity.setBillNo(billNo); + List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); + if (CollUtil.isNotEmpty(datas)) { + acceptOrderEntity.setOrderDetailEntities(datas); + acceptOrderEntity.setExitAccept(true); + } else { + FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest(); + filterOrderDetailResultRequest.setOrderIdFk(billNo); + List orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest); + //本地已存在,则直接返回 + if (CollUtil.isNotEmpty(orderDetailResultResponses)) { + acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses); + acceptOrderEntity.setExitAccept(false); + } else { + //获取自助平台待审核单据,并插入到数据库 + BaseResponse baseResponse = spGetHttp.getReviewOrder(reviewSpmsRequest); + if (baseResponse.getCode() == 20000) { + SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData(); + List orderEntities = spsSyncOrderResponse.getOrderEntities(); + if (CollUtil.isNotEmpty(orderEntities)) { + IoOrderEntity orderEntity = orderEntities.get(0); + orderEntity.setUpdateTime(null); + orderEntity.setFromType(ConstantStatus.FROM_UDISP); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + IoOrderEntity temp = orderService.findByBillNo(orderEntity.getBillNo()); + if (temp == null) { + orderEntity.setId(null); + orderService.insertOrder(orderEntity); + heartService.insetOrderDb(spsSyncOrderResponse, orderEntity); + } + FilterOrderDetailResultRequest tempRequest = new FilterOrderDetailResultRequest(); + tempRequest.setOrderIdFk(billNo); + List detailResultResponses = orderDetailResultService.filterList(tempRequest); + if (CollUtil.isNotEmpty(detailResultResponses)) { + acceptOrderEntity.setOrderDetailEntities(detailResultResponses); + acceptOrderEntity.setExitAccept(false); + } + } + } else { + return ResultVOUtils.error(500, baseResponse.getMessage()); + } + } + } + return ResultVOUtils.success(acceptOrderEntity); + } + } diff --git a/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java b/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java index 74e34b4e7..cf8d146e9 100644 --- a/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java +++ b/src/main/java/com/glxp/api/controller/sync/SyncDataSetController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.Date; import java.util.List; @RestController @@ -57,12 +58,18 @@ public class SyncDataSetController { ) { SyncDataSetEntity syncDataSetEntity = new SyncDataSetEntity(); BeanUtils.copyProperties(syncDataSetResponse, syncDataSetEntity); + syncDataSetEntity.setUpdateTime(new Date()); syncDataSetEntity.setId(1); List busTypes = syncDataSetResponse.getBusTypes(); - syncDataBustypeService.deleteAll(); + syncDataBustypeService.deleteAll(1); if (CollUtil.isNotEmpty(busTypes)) syncDataBustypeService.inserts(busTypes); - syncDataSetEntity.setBusTypes(null); + + List toInBusTypes = syncDataSetResponse.getToInBusTypes(); + syncDataBustypeService.deleteAll(2); + if (CollUtil.isNotEmpty(toInBusTypes)) + syncDataBustypeService.inserts(toInBusTypes); + if (CollUtil.isNotEmpty(syncDataSetResponse.getChangeBusTypes())) { syncDataChangeBustypeService.deleteAll(); diff --git a/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java b/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java index 62f0d8ec4..4b5a65a64 100644 --- a/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java +++ b/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java @@ -2,6 +2,7 @@ package com.glxp.api.dao.auth; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; import com.glxp.api.req.auth.FilterInvSubWarehouseRequest; import com.glxp.api.req.auth.FilterInvWarehouseRequest; import com.glxp.api.res.auth.InvSubWarehouseResponse; @@ -95,4 +96,6 @@ public interface InvWarehouseDao extends BaseMapperPlus { List findAll(); - boolean deleteAll(); void inserts(@Param("syncDataBustypeEntities") List syncDataBustypeEntities); diff --git a/src/main/java/com/glxp/api/dao/thrsys/ThrBusTypeOriginDao.java b/src/main/java/com/glxp/api/dao/thrsys/ThrBusTypeOriginDao.java index e3d83826c..85b5b1c5b 100644 --- a/src/main/java/com/glxp/api/dao/thrsys/ThrBusTypeOriginDao.java +++ b/src/main/java/com/glxp/api/dao/thrsys/ThrBusTypeOriginDao.java @@ -14,7 +14,7 @@ import java.util.List; * 第三方单据类型表查询接口 */ @Mapper -public interface ThrBusTypeOriginDao extends BaseMapperPlus { +public interface ThrBusTypeOriginDao extends BaseMapperPlus { /** * 查询第三方单据类型列表 @@ -47,4 +47,4 @@ public interface ThrBusTypeOriginDao extends BaseMapperPlusSPMS 2:SPMS->UDI管理系统 } diff --git a/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java b/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java index e099d24ef..14e9f7400 100644 --- a/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java +++ b/src/main/java/com/glxp/api/entity/system/SyncDataSetEntity.java @@ -2,45 +2,60 @@ package com.glxp.api.entity.system; import lombok.Data; +import java.util.Date; + @Data public class SyncDataSetEntity { private Integer id; - private boolean typeBus; //业务单据类型 - private boolean typeScan; //扫码单据类型 - private boolean typeThird; //第三方单据类型 - private boolean basicProducts; //耗材字典 - private boolean basicCorp; //往来单位字典 - private boolean basicDept; //部门字典 - private boolean basicInv; //仓库字典 - private boolean basicThirdProducts; //第三方产品信息 - private boolean basicThirdCorp; //第三方往来信息 - private boolean basicThirdInv; //第三方仓库信息 - private boolean basicThirdBusOrder; //第三方业务单据 - private boolean orderScanFinish; //已完成单据 - private boolean dbDiProducts; //DI产品信息 + private int typeBus; //业务单据类型 + private int typeScan; //扫码单据类型 + private int typeThird; //第三方单据类型 + private int basicProducts; //耗材字典 + private int basicCorp; //往来单位字典 + private int basicDept; //部门字典 + private int basicInv; //仓库字典 + private int basicThirdProducts; //第三方产品信息 + private int basicThirdCorp; //第三方往来信息 + private int basicThirdInv; //第三方仓库信息 + private int basicThirdBusOrder; //第三方业务单据 + private int dbDiProducts; //DI产品信息 private boolean downstreamEnable; //上游是否联通 private Integer syncTime; //数据上传间隔时间 private Integer syncDownloadTime; //数据下载间隔时间 - private boolean orderUnReceive; //未验收单据 - private boolean orderUnCheck; //待校验单据 - private String busTypes; //单据类型 - private String syncIp; - private boolean sysUser; - private boolean entrustAction; + private int sysUser; //系统用户信息 + private int entrustAction; //委托验收设置 + private int systemConfig; //系统参数设置 + private int printConfig; //打印设置 + private int scanChangeConfig; //自动建出入库单设置 + private int busChangeConfig; //自动建业务单设置 + + private int orderScanFinish; //已完成单据 + private int orderUnReceive; //未验收单据 + private int orderUnCheck; //待校验单据 - private Integer orderSyncTime; - private Integer orderSyncDlTime; + private int supCert; //首营资质证书 - private boolean unCheckCert; - private boolean checkedCert; - private boolean companyCert; - private boolean manufacturerCert; - private boolean productCert; + private String syncIp; //上级服务地址 + private Integer orderSyncTime; //单据向外同步时间 + private Integer orderSyncDlTime; //单据向内同步时间 + private Integer orderToInSyncTime; //单据向内同步时间 + private Integer delaySyncTime; + private int unCheckCert; + private int checkedCert; + private String busTypes; private String orderSyncStart; private String basicSyncStart; + + private Date updateTime; + + + private int companyCert; + private int manufacturerCert; + private int productCert; + } 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 0f0804145..880668c46 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -8,12 +8,12 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.sync.BasicExportStatusEntity; import com.glxp.api.entity.sync.IOOrderStatusEntity; import com.glxp.api.entity.system.SyncDataSetEntity; +import com.glxp.api.req.inout.ReviewFinishRequest; +import com.glxp.api.req.inout.ReviewSpmsRequest; import com.glxp.api.req.sync.BasicExportStatusRequest; import com.glxp.api.req.sync.OrderStatusFilterRequest; import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.sync.DlOrderResponse; -import com.glxp.api.res.sync.SpsSyncBusOrderResponse; -import com.glxp.api.res.sync.SpsSyncOrderResponse; +import com.glxp.api.res.sync.*; import com.glxp.api.service.sync.SyncDataSetService; import com.glxp.api.util.OkHttpCli; import org.springframework.beans.factory.annotation.Value; @@ -49,6 +49,7 @@ public class SpGetHttpClient { } + //上传扫码单据 public BaseResponse postAllOrder(SpsSyncOrderResponse spsSyncOrderResponse) { String json = JSONUtil.toJsonStr(spsSyncOrderResponse); String result = okHttpCli.doPostJson(getIpUrl() + "/orderApi/sps/sync/order/upload", json, buildHeader()); @@ -58,6 +59,7 @@ public class SpGetHttpClient { return response; } + //上传业务单据 public BaseResponse postAllBusOrder(SpsSyncBusOrderResponse spsSyncOrderResponse) { String json = JSONUtil.toJsonStr(spsSyncOrderResponse); String result = okHttpCli.doPostJson(getIpUrl() + "/busOrderApi/sps/sync/busOrder/upload", json, buildHeader()); @@ -68,6 +70,49 @@ public class SpGetHttpClient { } + //上传单据类型 + public BaseResponse postAllBusType(SpsSyncBusResponse spsSyncBusResponse) { + String json = JSONUtil.toJsonStr(spsSyncBusResponse); + String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/busType/upload", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + + //上传单据类型 + public BaseResponse postAllUser(SpsSyncDataResponse syncDataResponse) { + String json = JSONUtil.toJsonStr(syncDataResponse); + String result = okHttpCli.doPostJson(getIpUrl() + "/sps/sync/allUser/upload", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + + //获取自助平台验收单据---直连接口 + public BaseResponse getReviewOrder(ReviewSpmsRequest reviewSpmsRequest) { + String json = JSONUtil.toJsonStr(reviewSpmsRequest); + String result = okHttpCli.doPostJson(getIpUrl() + "/udiwms/order/getReviews", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + //验收自助平台单据--直连接口 + public BaseResponse reviewOrder(ReviewFinishRequest reviewFinishRequest) { + String json = JSONUtil.toJsonStr(reviewFinishRequest); + String result = okHttpCli.doPostJson(getIpUrl() + "/spms/inout/order/web/updateStatus", json, buildHeader()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + public BaseResponse> getOrderStatus() { Map paramMap = new HashMap<>(16); paramMap.put("status", 1 + ""); diff --git a/src/main/java/com/glxp/api/req/inout/ReviewSpmsRequest.java b/src/main/java/com/glxp/api/req/inout/ReviewSpmsRequest.java new file mode 100644 index 000000000..da5ee232b --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/ReviewSpmsRequest.java @@ -0,0 +1,10 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +@Data +public class ReviewSpmsRequest { + + private String billNo; + +} diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncBusResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncBusResponse.java new file mode 100644 index 000000000..9c006a54d --- /dev/null +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncBusResponse.java @@ -0,0 +1,19 @@ +package com.glxp.api.res.sync; + +import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.EntrustReceEntity; +import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncBusResponse { + + //同步任务ID + private String taskId; + private List bussinessTypeEntities; + private List busTypeChangeEntities; + private List thrBusTypeOriginEntities; +} diff --git a/src/main/java/com/glxp/api/res/sync/SpsSyncDataResponse.java b/src/main/java/com/glxp/api/res/sync/SpsSyncDataResponse.java new file mode 100644 index 000000000..2ff379cdc --- /dev/null +++ b/src/main/java/com/glxp/api/res/sync/SpsSyncDataResponse.java @@ -0,0 +1,33 @@ +package com.glxp.api.res.sync; + +import com.glxp.api.entity.auth.*; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncDataResponse { + + //同步任务ID + private String taskId; + + //用户信息 + List authAdminList; + List invBusUserEntities; + + //部门信息 + List deptEntityList; + List deptUserEntities; + + + //仓库相关 + List invWarehouseEntities; + List warehouseBussinessTypeEntities; + List warehouseUserEntities; + + + //货位信息 + List invSpaces; + + +} diff --git a/src/main/java/com/glxp/api/res/system/SyncDataSetResponse.java b/src/main/java/com/glxp/api/res/system/SyncDataSetResponse.java index 405462ace..7e1a53c83 100644 --- a/src/main/java/com/glxp/api/res/system/SyncDataSetResponse.java +++ b/src/main/java/com/glxp/api/res/system/SyncDataSetResponse.java @@ -10,42 +10,47 @@ import java.util.List; @Data public class SyncDataSetResponse { private Integer id; - private boolean typeBus; - private boolean typeScan; - private boolean typeThird; - private boolean basicProducts; - private boolean basicCorp; - private boolean basicInv; - private boolean basicDept; - private boolean basicThirdProducts; - private boolean basicThirdCorp; - private boolean basicThirdInv; - private boolean basicThirdBusOrder; - private boolean dbDiProducts; + private int typeBus; //0:不传输,1:由内向外,2:由外向内 + private int typeScan; + private int typeThird; + private int basicProducts; + private int basicCorp; + private int basicInv; + private int basicDept; + private int basicThirdProducts; + private int basicThirdCorp; + private int basicThirdInv; + private int basicThirdBusOrder; + private int dbDiProducts; private boolean downstreamEnable; - private boolean orderScanFinish; - private boolean orderUnReceive; - private boolean orderUnCheck; + private int orderScanFinish; + private int orderUnReceive; + private int orderUnCheck; private Integer syncTime; private String syncIp; private Integer syncDownloadTime; //定时下载时间 - private boolean sysUser; + private int sysUser; - private List busTypes; //扫码单据类型 - private List changeBusTypes; //业务单据类型 -// private List purTypeEntities; + private List busTypes; //UDI管理系统->SPMS单据类型 + private List toInBusTypes; //SPMS->UDI管理系统单据类型 + private List changeBusTypes; //UDI管理系统->业务单据类型 private String orderSyncStart; private String basicSyncStart; - private boolean entrustAction; - private Integer orderSyncTime; - private Integer orderSyncDlTime; + private int systemConfig; + private int entrustAction; + private int printConfig; + private int scanChangeConfig; + private int busChangeConfig; + private Integer orderSyncTime; //单据向外同步时间 + private Integer orderToInSyncTime; //单据向内同步时间 + private Integer orderSyncDlTime; //单据向外下载时间 private Integer delaySyncTime; + private int supCert; - - private boolean unCheckCert; - private boolean checkedCert; - private boolean companyCert; - private boolean manufacturerCert; - private boolean productCert; + private int unCheckCert; + private int checkedCert; + private int companyCert; + private int manufacturerCert; + private int productCert; } diff --git a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java index 3aafad071..35dd24208 100644 --- a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java +++ b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java @@ -7,6 +7,7 @@ import com.glxp.api.res.auth.InvSubWarehouseResponse; import com.glxp.api.res.auth.InvWarehouseThirdSysResponse; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface InvWarehouseService { @@ -82,5 +83,8 @@ public interface InvWarehouseService { * @return */ List findInvListByUser(FilterInvWarehouseRequest filterInvWarehouseRequest); - String selectParentIdByCode( String invCode); + + String selectParentIdByCode(String invCode); + + List findByLastTime(Date lastUpdateTime); } diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java index 2fd487c45..b3144530d 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java @@ -3,10 +3,12 @@ package com.glxp.api.service.auth.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.auth.InvWarehouseDao; import com.glxp.api.dao.thrsys.ThrSystemDao; import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.req.auth.FilterInvSubWarehouseRequest; import com.glxp.api.req.auth.FilterInvWarehouseRequest; @@ -20,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; @Service @@ -231,4 +234,9 @@ public class InvWarehouseServiceImpl implements InvWarehouseService { public String selectParentIdByCode(String invCode) { return invWarehouseDao.selectParentIdByCode(invCode); } + + @Override + public List findByLastTime(Date lastUpdateTime) { + return invWarehouseDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); + } } diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBusTypeChangeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBusTypeChangeService.java index f629ab7db..39bfac036 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBusTypeChangeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBusTypeChangeService.java @@ -1,9 +1,11 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.FilterBusTypeChangeRequest; import com.glxp.api.res.basic.BasicBusTypeChangeResponse; +import java.util.Date; import java.util.List; /** @@ -51,4 +53,7 @@ public interface IBasicBusTypeChangeService { * @return */ boolean verifyExists(BasicBusTypeChangeEntity basicBusTypeChangeEntity); + + + List findByLastTime(Date lastUpdateTime); } diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java index c3f4f0480..6eb767322 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java @@ -4,6 +4,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.FilterBussinessTypeRequest; import com.glxp.api.res.basic.BasicBussinessTypeResponse; +import java.util.Date; import java.util.List; /** @@ -118,4 +119,6 @@ public interface IBasicBussinessTypeService { List findByVueType(String vueType); List selectbyNotAction(List list); + + List findByLastTime(Date lastUpdateTime); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypeChangeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypeChangeServiceImpl.java index 80f3f22c9..a37faad5a 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypeChangeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypeChangeServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicBusTypeChangeDao; import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.req.basic.FilterBusTypeChangeRequest; import com.glxp.api.res.basic.BasicBusTypeChangeResponse; import com.glxp.api.service.auth.CustomerService; @@ -82,6 +83,11 @@ public class BasicBusTypeChangeServiceImpl implements IBasicBusTypeChangeService return false; } + @Override + public List findByLastTime(Date lastUpdateTime) { + return basicBusTypeChangeDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); + } + private void setUpdateInfo(BasicBusTypeChangeEntity basicBusTypeChangeEntity) { Date now = new Date(); String userId = String.valueOf(customerService.getUserBean().getId()); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 5d3719fc1..3a942a9cb 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -286,4 +286,9 @@ public class BasicBussinessTypeServiceImpl implements IBasicBussinessTypeService public List selectbyNotAction(List list) { return basicBussinessTypeDao.selectbyNotAction(list); } + + @Override + public List findByLastTime(Date lastUpdateTime) { + return basicBussinessTypeDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); + } } 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 09818b0f5..77d083454 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -8,8 +8,9 @@ import javax.annotation.Resource; import com.glxp.api.dao.inout.*; import com.glxp.api.entity.inout.*; -import com.glxp.api.service.inout.IoAddInoutService; -import com.glxp.api.service.inout.IoCheckInoutService; +import com.glxp.api.res.sync.SpsSyncBusResponse; +import com.glxp.api.res.sync.SpsSyncDataResponse; +import com.glxp.api.service.inout.*; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; @@ -30,7 +31,6 @@ import com.glxp.api.http.sync.SpGetHttpClient; import com.glxp.api.req.sync.SpsSyncDataRequest; import com.glxp.api.res.sync.SpsSyncBusOrderResponse; import com.glxp.api.res.sync.SpsSyncOrderResponse; -import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.DateUtil; @@ -52,7 +52,12 @@ public class HeartService { SqlSessionFactory sqlSessionFactory; @Resource IoOrderService orderService; + @Resource + IoAddInoutService addInoutService; + @Resource + IoCheckInoutService ioCheckInoutService; + //上传最近更新扫码单据 public BaseResponse uploadAllOrder(String syncTime) { SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); if (syncTime == null) { @@ -112,7 +117,7 @@ public class HeartService { return ResultVOUtils.success(); } - + //上传最近更新业务单据 public BaseResponse uploadAllBusOrder(String syncTime) { SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); if (syncTime == null) { @@ -170,6 +175,168 @@ public class HeartService { return ResultVOUtils.success(); } + //上传最近更新单据类型 + public BaseResponse uploadAllBus(String syncTime) { + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + if (syncTime == null) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_BUS_TYPE); + if (basicExportStatusTimeEntity == null) { + basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); + basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00"); + } + spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime()); + } else { + spsSyncDataRequest.setLastUpdateTime(syncTime); + } + SpsSyncBusResponse spsSyncBusResponse = upBasicService.upAllBus(spsSyncDataRequest); + if (CollUtil.isEmpty(spsSyncBusResponse.getBussinessTypeEntities()) + && CollUtil.isEmpty(spsSyncBusResponse.getBusTypeChangeEntities()) + && CollUtil.isEmpty(spsSyncBusResponse.getThrBusTypeOriginEntities()) + ) { + return ResultVOUtils.success("无数据"); + } + BasicExportStatusEntity basicExportStatusEntity2 = basicExportService.findByData(ConstantStatus.SYNC_BUS_TYPE, 0); + if (basicExportStatusEntity2 == null) { + BasicExportStatusEntity busTypetatusEntity = new BasicExportStatusEntity(); + busTypetatusEntity.setId(CustomUtil.getId()); + busTypetatusEntity.setIdDatas(ConstantStatus.SYNC_BUS_TYPE); + busTypetatusEntity.setType(BasicProcessStatus.NEW_ALL_BUS); + busTypetatusEntity.setUpdateTime(new Date()); + busTypetatusEntity.setStartTime(new Date()); + busTypetatusEntity.setStatus(0); + busTypetatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(busTypetatusEntity); + basicExportStatusEntity2 = busTypetatusEntity; + } + BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); + basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_BUS_TYPE); + spsSyncBusResponse.setTaskId(basicExportStatusEntity2.getId()); + BaseResponse baseResponse2 = spGetHttp.postAllBusType(spsSyncBusResponse); + if (baseResponse2.getCode() == 20000) { + basicExportStatusEntity2.setStatus(1); + } else { + basicExportStatusEntity2.setStatus(ConstantStatus.SYNC_STATUS_FAIL); + } + basicExportStatusEntity2.setEndTime(new Date()); + basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity); + //拼接日志 + String logs = ""; + if (CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessTypeEntities())) + logs = logs + "扫码单据类型:" + spsSyncBusResponse.getBussinessTypeEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(spsSyncBusResponse.getBusTypeChangeEntities())) + logs = logs + "业务单据类型:" + spsSyncBusResponse.getBusTypeChangeEntities().size() + "条\n"; + if (CollUtil.isNotEmpty(spsSyncBusResponse.getThrBusTypeOriginEntities())) + logs = logs + "第三方单据类型:" + spsSyncBusResponse.getThrBusTypeOriginEntities().size() + "条\n"; + basicExportStatusEntity2.setRemark(logs); + basicExportStatusEntity2.setUpdateTime(new Date()); + basicExportService.updateExportStatus(basicExportStatusEntity2); + return ResultVOUtils.success(); + } + + //上传用户信息 + public BaseResponse uploadAllUserData(String syncTime) { + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + if (syncTime == null) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_BASIC_DATA); + if (basicExportStatusTimeEntity == null) { + basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); + basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00"); + } + spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime()); + + } else { + spsSyncDataRequest.setLastUpdateTime(syncTime); + } + + SpsSyncDataResponse syncDataResponse = upBasicService.uploadAllUserData(spsSyncDataRequest); + if (CollUtil.isEmpty(syncDataResponse.getInvWarehouseEntities()) + && CollUtil.isEmpty(syncDataResponse.getAuthAdminList()) + && CollUtil.isEmpty(syncDataResponse.getDeptEntityList()) + && CollUtil.isEmpty(syncDataResponse.getWarehouseBussinessTypeEntities()) + && CollUtil.isEmpty(syncDataResponse.getWarehouseUserEntities()) + ) { + //数据不记录日志 + return ResultVOUtils.success("无数据"); + } + + BasicExportStatusEntity basicExportStatusEntity3 = basicExportService.findByData(ConstantStatus.SYNC_BASIC_DATA, 0); + if (basicExportStatusEntity3 == null) { + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + basicExportStatusEntity.setId(CustomUtil.getId()); + basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_BASIC_DATA); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DATA); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStartTime(new Date()); + basicExportStatusEntity.setStatus(0); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + basicExportStatusEntity3 = basicExportStatusEntity; + } + + BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); + basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_BASIC_DATA); + syncDataResponse.setTaskId(basicExportStatusEntity3.getId()); + BaseResponse baseResponse = spGetHttp.postAllUser(syncDataResponse); + if (baseResponse.getCode() == 20000) { + basicExportStatusEntity3.setStatus(1); + } else { + basicExportStatusEntity3.setStatus(ConstantStatus.SYNC_STATUS_FAIL); + } + basicExportStatusEntity3.setEndTime(new Date()); + basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity); + String logs = ""; + + if (CollUtil.isNotEmpty(syncDataResponse.getInvWarehouseEntities())) + logs = logs + "仓库字典:" + syncDataResponse.getInvWarehouseEntities().size() + "条\n"; + + if (CollUtil.isNotEmpty(syncDataResponse.getWarehouseUserEntities())) { + logs = logs + "仓库用户信息:" + syncDataResponse.getWarehouseUserEntities().size() + "条\n"; + } + if (CollUtil.isNotEmpty(syncDataResponse.getWarehouseBussinessTypeEntities())) { + logs = logs + "仓库单据类型:" + syncDataResponse.getWarehouseBussinessTypeEntities().size() + "条\n"; + } + + if (CollUtil.isNotEmpty(syncDataResponse.getAuthAdminList())) + logs = logs + "系统用户信息:" + syncDataResponse.getAuthAdminList().size() + "条\n"; + if (CollUtil.isNotEmpty(syncDataResponse.getInvBusUserEntities())) + logs = logs + "用户关联单据类型信息:" + syncDataResponse.getInvBusUserEntities().size() + "条\n"; + + + if (CollUtil.isNotEmpty(syncDataResponse.getDeptEntityList())) + logs = logs + "部门信息:" + syncDataResponse.getDeptEntityList().size() + "条\n"; + if (CollUtil.isNotEmpty(syncDataResponse.getDeptUserEntities())) + logs = logs + "部门用户信息:" + syncDataResponse.getDeptUserEntities().size() + "条\n"; + + + if (CollUtil.isNotEmpty(syncDataResponse.getInvSpaces())) + logs = logs + "货位信息:" + syncDataResponse.getInvSpaces().size() + "条\n"; + + basicExportStatusEntity3.setRemark(logs); + basicExportStatusEntity3.setUpdateTime(new Date()); + basicExportService.updateExportStatus(basicExportStatusEntity3); + return ResultVOUtils.success(); + } +// +// //上传最近更新第三方基础数据 +// public BaseResponse uploadThirdData(String syncTime) { +// +// } + + + @Resource + IoCodeTempService codeTempService; + @Resource + IoOrderDetailBizService orderDetailBizService; + @Resource + IoOrderDetailCodeService orderDetailCodeService; + @Resource + IoOrderDetailResultService orderDetailResultService; + @Resource + IoOrderInvoiceService orderInvoiceService; + + //下载最近更新扫码单据 public void dlAllOrder() { BaseResponse> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.NEW_ALL_ORDER + ""); List pageSimpleResponse = baseResponse != null ? baseResponse.getData() : new ArrayList<>(); @@ -195,11 +362,9 @@ public class HeartService { basicDownloadService.insertDownloadStatus(basicDownloadStatusEntity); StringBuffer remark = new StringBuffer(); - SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED); if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) { try { List orderEntities = syncDataResponse.getOrderEntities(); - IoOrderDao mapper = batchSession.getMapper(IoOrderDao.class); for (IoOrderEntity orderEntity : orderEntities) { orderEntity.setUpdateTime(null); orderEntity.setFromType(ConstantStatus.FROM_UDISP); @@ -207,70 +372,8 @@ public class HeartService { IoOrderEntity temp = orderService.findByBillNo(orderEntity.getBillNo()); if (temp == null) { orderEntity.setId(null); - mapper.insert(orderEntity); - - - //更新码详情 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { - IoCodeTempDao codeMappert = batchSession.getMapper(IoCodeTempDao.class); - List warehouseEntityList = syncDataResponse.getCodeEntities(); - for (IoCodeEntity warehouseEntity : warehouseEntityList) { - if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) { - IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); - BeanUtils.copyProperties(warehouseEntity, codeTempEntity); - codeTempEntity.setId(null); - codeMappert.insert(codeTempEntity); - } - } - } - - //更新业务详情 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) { - IoOrderDetailBizDao orderDetailBizDao = batchSession.getMapper(IoOrderDetailBizDao.class); - List orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities(); - for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { - if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - orderDetailBizDao.insert(bizEntity); - } - } - } - - //更新码详情 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { - IoOrderDetailCodeDao orderDetailCodeDao = batchSession.getMapper(IoOrderDetailCodeDao.class); - List orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities(); - for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) { - if (codeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - orderDetailCodeDao.insert(codeEntity); - } - } - } - - - //更新结果详情 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities())) { - IoOrderDetailResultDao orderDetailResultDao = batchSession.getMapper(IoOrderDetailResultDao.class); - List orderDetailResultEntities = syncDataResponse.getOrderDetailResultEntities(); - for (IoOrderDetailResultEntity detailResultEntity : orderDetailResultEntities) { - if (detailResultEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - orderDetailResultDao.insert(detailResultEntity); - } - } - } - - //更新发票信息 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { - IoOrderInvoiceMapper orderInvoiceMapper = batchSession.getMapper(IoOrderInvoiceMapper.class); - List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); - for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { - if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - orderInvoiceMapper.insert(orderInvoiceEntity); - } - } - } - batchSession.commit(); - - + orderService.insertOrder(orderEntity); + insetOrderDb(syncDataResponse, orderEntity); orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); addInoutService.dealProcess(orderEntity); orderEntity = orderService.findByBillNo(orderEntity.getBillNo()); @@ -279,7 +382,6 @@ public class HeartService { } } } - batchSession.commit(); String logs = ""; if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) @@ -299,7 +401,6 @@ public class HeartService { } - batchSession.close(); spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); basicDownloadStatusEntity.setUpdateTime(new Date()); @@ -315,9 +416,64 @@ public class HeartService { } } + public void insetOrderDb(SpsSyncOrderResponse syncDataResponse, IoOrderEntity orderEntity) { + //更新码详情 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { + List warehouseEntityList = syncDataResponse.getCodeEntities(); + for (IoCodeEntity warehouseEntity : warehouseEntityList) { + if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtils.copyProperties(warehouseEntity, codeTempEntity); + codeTempEntity.setId(null); + codeTempService.insert(codeTempEntity); + } + } + } + + //更新业务详情 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) { + List orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities(); + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + bizEntity.setId(null); + orderDetailBizService.insert(bizEntity); + } + } + } + + //更新码详情 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { + List orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities(); + for (IoOrderDetailCodeEntity codeEntity : orderDetailCodeEntities) { + if (codeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + codeEntity.setId(null); + orderDetailCodeService.insert(codeEntity); + } + } + } + + + //更新结果详情 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailResultEntities())) { + List orderDetailResultEntities = syncDataResponse.getOrderDetailResultEntities(); + for (IoOrderDetailResultEntity detailResultEntity : orderDetailResultEntities) { + if (detailResultEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + detailResultEntity.setId(null); + orderDetailResultService.insert(detailResultEntity); + } + } + } + + //更新发票信息 + if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { + List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); + for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { + if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { + orderInvoiceService.insertInvoice(orderInvoiceEntity); + } + } + } + } + - @Resource - IoAddInoutService addInoutService; - @Resource - IoCheckInoutService ioCheckInoutService; } diff --git a/src/main/java/com/glxp/api/service/sync/SyncDataBustypeService.java b/src/main/java/com/glxp/api/service/sync/SyncDataBustypeService.java index e2f078727..fd3e15c2a 100644 --- a/src/main/java/com/glxp/api/service/sync/SyncDataBustypeService.java +++ b/src/main/java/com/glxp/api/service/sync/SyncDataBustypeService.java @@ -7,9 +7,9 @@ import java.util.List; public interface SyncDataBustypeService { - List findAll(); + List findAll(Integer direct); - boolean deleteAll(); + boolean deleteAll(Integer direct); void inserts(List syncDataBustypeEntities); diff --git a/src/main/java/com/glxp/api/service/sync/UpBasicService.java b/src/main/java/com/glxp/api/service/sync/UpBasicService.java index 61b4b2825..2dca7ef66 100644 --- a/src/main/java/com/glxp/api/service/sync/UpBasicService.java +++ b/src/main/java/com/glxp/api/service/sync/UpBasicService.java @@ -2,22 +2,41 @@ package com.glxp.api.service.sync; import cn.hutool.core.collection.CollUtil; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.entity.auth.*; +import com.glxp.api.entity.basic.*; import com.glxp.api.entity.inout.*; -import com.glxp.api.entity.purchase.PurOrderDetailEntity; -import com.glxp.api.entity.purchase.PurOrderEntity; +import com.glxp.api.entity.purchase.*; import com.glxp.api.entity.system.SyncDataBustypeEntity; import com.glxp.api.entity.system.SyncDataChangeBustypesEntity; import com.glxp.api.entity.system.SyncDataPurTypeEntity; +import com.glxp.api.entity.thrsys.*; +import com.glxp.api.req.auth.*; +import com.glxp.api.req.basic.BasicEntrustRecRequest; +import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest; +import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; +import com.glxp.api.req.basic.FilterUdiInfoRequest; import com.glxp.api.req.inout.FilterOrderRequest; +import com.glxp.api.req.purchase.FilterPoductRequest; +import com.glxp.api.req.purchase.FilterSupCompanyRequest; +import com.glxp.api.req.purchase.FilterSupManufacturerRequest; import com.glxp.api.req.sync.SpsSyncDataRequest; +import com.glxp.api.req.thrsys.*; import com.glxp.api.res.sync.SpsSyncBusOrderResponse; +import com.glxp.api.res.sync.SpsSyncBusResponse; +import com.glxp.api.res.sync.SpsSyncDataResponse; import com.glxp.api.res.sync.SpsSyncOrderResponse; import com.glxp.api.res.system.SyncDataSetResponse; +import com.glxp.api.service.auth.*; +import com.glxp.api.service.basic.IBasicBusTypeChangeService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.basic.impl.BasicBussinessTypeServiceImpl; import com.glxp.api.service.inout.*; import com.glxp.api.service.purchase.PurOrderDetailService; import com.glxp.api.service.purchase.PurOrderService; +import com.glxp.api.service.thrsys.IThrBusTypeOriginService; import com.glxp.api.util.DateUtil; import org.springframework.beans.BeanUtils; +import org.springframework.data.annotation.Reference; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -50,6 +69,7 @@ public class UpBasicService { @Resource IoOrderInvoiceService orderInvoiceService; + //上传最近更新扫码单据 public SpsSyncOrderResponse upAllOrder(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse(); //查询数据同步设置 @@ -111,6 +131,7 @@ public class UpBasicService { return syncOrderResponse; } + //上传最近更新业务单据 public SpsSyncBusOrderResponse upAllBusOrder(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncBusOrderResponse syncOrderResponse = new SpsSyncBusOrderResponse(); //查询数据同步设置 @@ -142,4 +163,126 @@ public class UpBasicService { return syncOrderResponse; } + + @Resource + IBasicBussinessTypeService basicBussinessTypeService; + @Resource + IBasicBusTypeChangeService basicBusTypeChangeService; + @Resource + IThrBusTypeOriginService thrBusTypeOriginService; + + //上传最近更新单据类型 + public SpsSyncBusResponse upAllBus(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncBusResponse spsSyncBusResponse = new SpsSyncBusResponse(); + SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); + + //扫码单据类型 + if (syncDataSetEntity.getTypeScan() == 1) { + List bussinessTypeEntities = basicBussinessTypeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); + spsSyncBusResponse.setBussinessTypeEntities(bussinessTypeEntities); + } + + // 业务单据类型 + if (syncDataSetEntity.getTypeBus() == 1) { + List basicBusTypeChangeEntities = basicBusTypeChangeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); + spsSyncBusResponse.setBusTypeChangeEntities(basicBusTypeChangeEntities); + } + + //第三方单据类型 + if (syncDataSetEntity.getTypeThird() == 1) { + List thrBusTypeOriginEntities = thrBusTypeOriginService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); + spsSyncBusResponse.setThrBusTypeOriginEntities(thrBusTypeOriginEntities); + } + + + return spsSyncBusResponse; + } + + @Resource + InvWarehouseService invWarehouseService; + @Resource + WarehouseBussinessTypeService warehouseBussinessTypeService; + @Resource + WarehouseUserService warehouseUserService; + @Resource + InvBusUserService invBusUserService; + @Resource + AuthAdminService authAdminService; + @Resource + DeptService deptService; + @Resource + DeptUserService deptUserService; + + public SpsSyncDataResponse uploadAllUserData(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncDataResponse syncDataResponse = new SpsSyncDataResponse(); + SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); + if (syncDataSetEntity.getBasicDept() == 1) { + //获取部门信息 + FilterInvWarehouseRequest filterDeptRequest = new FilterInvWarehouseRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, filterDeptRequest); + List deptEntityList = deptService.filterGroupInvWarehouse(filterDeptRequest); + syncDataResponse.setDeptEntityList(deptEntityList); + + List allDeptUserEntities = new ArrayList<>(); + if (CollUtil.isNotEmpty(deptEntityList)) { + for (DeptEntity deptEntity : deptEntityList) { + FilterDeptUserReqeust filterDeptUserReqeust = new FilterDeptUserReqeust(); + filterDeptUserReqeust.setDeptId(deptEntity.getId().longValue()); + List deptUserEntities = deptUserService.selectDeptUser(filterDeptUserReqeust); + allDeptUserEntities.addAll(deptUserEntities); + } + syncDataResponse.setDeptUserEntities(allDeptUserEntities); + } + } + + + //仓库字典 + if (syncDataSetEntity.getBasicInv() == 1) { + + //仓库字典 + List invWarehouseEntities = invWarehouseService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); + syncDataResponse.setInvWarehouseEntities(invWarehouseEntities); + if (CollUtil.isNotEmpty(invWarehouseEntities)) { + + List mWarehouseBussinessTypeEntities = new ArrayList<>(); + List mWarehouseUserEntities = new ArrayList<>(); + List mInvBusUserEntities = new ArrayList<>(); + for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) { + //获取仓库关联单据类型 + FilterInvBusTypeRequest filterInvBusTypeRequest = new FilterInvBusTypeRequest(); + filterInvBusTypeRequest.setCode(invWarehouseEntity.getCode()); + List warehouseBussinessTypeEntities = warehouseBussinessTypeService.filterList(filterInvBusTypeRequest); + mWarehouseBussinessTypeEntities.addAll(warehouseBussinessTypeEntities); + + //获取仓库关联用户 + FilterInvUserRequest filterInvUserRequest = new FilterInvUserRequest(); + filterInvUserRequest.setCode(invWarehouseEntity.getCode()); + List warehouseUserEntities = warehouseUserService.filterWarehouseUsers(filterInvUserRequest); + mWarehouseUserEntities.addAll(warehouseUserEntities); + + if (CollUtil.isNotEmpty(warehouseUserEntities)) { + for (WarehouseUserEntity warehouseUserEntity : warehouseUserEntities) { + List invBusUserEntities = invBusUserService.selectByUnion(warehouseUserEntity.getUserid() + "", invWarehouseEntity.getCode()); + mInvBusUserEntities.addAll(invBusUserEntities); + } + } + } + syncDataResponse.setInvBusUserEntities(mInvBusUserEntities); + syncDataResponse.setWarehouseUserEntities(mWarehouseUserEntities); + syncDataResponse.setWarehouseBussinessTypeEntities(mWarehouseBussinessTypeEntities); + } + } + + //系统用户信息 + if (syncDataSetEntity.getSysUser() == 1) { + FilterAuthUserRequest authAdminQueryRequest = new FilterAuthUserRequest(); + BeanUtils.copyProperties(spsSyncDataRequest, authAdminQueryRequest); + List authAdminList = authAdminService.listAdminPage(authAdminQueryRequest); + syncDataResponse.setAuthAdminList(authAdminList); + } + + + return syncDataResponse; + } + } diff --git a/src/main/java/com/glxp/api/service/sync/impl/SyncDataBustypeServiceImpl.java b/src/main/java/com/glxp/api/service/sync/impl/SyncDataBustypeServiceImpl.java index a21fab96f..dab28c92a 100644 --- a/src/main/java/com/glxp/api/service/sync/impl/SyncDataBustypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/sync/impl/SyncDataBustypeServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.sync.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.api.dao.sync.SyncDataBustypeDao; import com.glxp.api.entity.system.SyncDataBustypeEntity; import com.glxp.api.service.sync.SyncDataBustypeService; @@ -17,13 +18,13 @@ public class SyncDataBustypeServiceImpl implements SyncDataBustypeService { SyncDataBustypeDao syncDataBustypeDao; @Override - public List findAll() { - return syncDataBustypeDao.findAll(); + public List findAll(Integer direct) { + return syncDataBustypeDao.selectList(new QueryWrapper().eq("direct", direct)); } @Override - public boolean deleteAll() { - return syncDataBustypeDao.deleteAll(); + public boolean deleteAll(Integer direct) { + return syncDataBustypeDao.delete(new QueryWrapper().eq("direct", direct)) > 0 ? true : false; } @Override diff --git a/src/main/java/com/glxp/api/service/sync/impl/SyncDataSetServiceImpl.java b/src/main/java/com/glxp/api/service/sync/impl/SyncDataSetServiceImpl.java index be857663a..b52e3227c 100644 --- a/src/main/java/com/glxp/api/service/sync/impl/SyncDataSetServiceImpl.java +++ b/src/main/java/com/glxp/api/service/sync/impl/SyncDataSetServiceImpl.java @@ -37,10 +37,12 @@ public class SyncDataSetServiceImpl implements SyncDataSetService { SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet(); SyncDataSetResponse syncDataSetResponse = new SyncDataSetResponse(); BeanUtils.copyProperties(syncDataSetEntity, syncDataSetResponse); - List syncDataBustypeEntities = syncDataBustypeService.findAll(); + List syncDataBustypeEntities = syncDataBustypeService.findAll(1); + List syncDataToInBustypeEntities = syncDataBustypeService.findAll(2); List changeBustypesEntities = syncDataChangeBustypeService.findAll(); syncDataSetResponse.setBusTypes(syncDataBustypeEntities); syncDataSetResponse.setChangeBusTypes(changeBustypesEntities); + syncDataSetResponse.setToInBusTypes(syncDataToInBustypeEntities); return syncDataSetResponse; } diff --git a/src/main/java/com/glxp/api/service/thrsys/IThrBusTypeOriginService.java b/src/main/java/com/glxp/api/service/thrsys/IThrBusTypeOriginService.java index e847dbcd4..5df74fb9e 100644 --- a/src/main/java/com/glxp/api/service/thrsys/IThrBusTypeOriginService.java +++ b/src/main/java/com/glxp/api/service/thrsys/IThrBusTypeOriginService.java @@ -1,10 +1,12 @@ package com.glxp.api.service.thrsys; +import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.thrsys.FilterThrBusTypeOriginRequest; import com.glxp.api.res.thrsys.ThrBusTypeOriginResponse; +import java.util.Date; import java.util.List; /** @@ -101,4 +103,7 @@ public interface IThrBusTypeOriginService { */ String findNameByAction(String originAction); + + List findByLastTime(Date lastUpdateTime); + } 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 ebb61b9c1..9e92a7a35 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 @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.thrsys.ThrBusTypeOriginDao; +import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.req.thrsys.FilterThrBusTypeOriginRequest; @@ -86,7 +87,7 @@ public class ThrBusTypeOriginServiceImpl implements IThrBusTypeOriginService { @Override public ThrBusTypeOriginEntity findByAction(String action) { QueryWrapper query = new QueryWrapper<>(); - if(StrUtil.isNotEmpty(action)){ + if (StrUtil.isNotEmpty(action)) { query.like("action", action); } List list = thrBusTypeOriginDao.selectList(query); @@ -149,4 +150,8 @@ public class ThrBusTypeOriginServiceImpl implements IThrBusTypeOriginService { thrBusTypeOriginEntity.setUpdateTime(now); } + @Override + public List findByLastTime(Date lastUpdateTime) { + return thrBusTypeOriginDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); + } } diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 7192e8b79..4dc6326f9 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -57,6 +57,23 @@ public class SyncHeartTask implements SchedulingConfigurer { SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet(); if (syncDataSetEntity.isDownstreamEnable()) { + + //定时上传最近更新基础数据至上游轮询时间 + long timeInterval1 = syncDataSetEntity.getSyncTime() * 60 * 1000L; + long curTime1 = System.currentTimeMillis(); + Long lastTime1 = (Long) redisUtil.get("SPS_SYNC_UPLOAD_DATA"); + if (lastTime1 == null) { + lastTime1 = System.currentTimeMillis(); + redisUtil.set("SPS_SYNC_UPLOAD_DATA", lastTime1); + } + if (curTime1 - lastTime1 > timeInterval1) { + heartService.uploadAllBus(null); + heartService.uploadAllUserData(null); +// heartService.uploadScheduleList(); + redisUtil.set("SPS_SYNC_UPLOAD_DATA", curTime1); + } + + //定时上传最近更新单据数据至上游轮询时间 long timeInterval2 = syncDataSetEntity.getOrderSyncTime() * 60 * 1000L; long curTime2 = System.currentTimeMillis(); diff --git a/src/main/resources/mybatis/mapper/auth/DeptUserDao.xml b/src/main/resources/mybatis/mapper/auth/DeptUserDao.xml index 3b656c16b..6cfb932fc 100644 --- a/src/main/resources/mybatis/mapper/auth/DeptUserDao.xml +++ b/src/main/resources/mybatis/mapper/auth/DeptUserDao.xml @@ -3,17 +3,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - SELECT auth_dept_user.*, auth_user.userName, auth_user.employeeName, auth_dept.`name` deptName, auth_user.comments + SELECT auth_dept_user.*, + auth_user.userName, + auth_user.employeeName, + auth_dept.`name` deptName, + auth_user.comments FROM auth_dept_user - INNER JOIN auth_user - on auth_dept_user.userId = auth_user.id - INNER JOIN auth_dept on auth_dept_user.deptId = auth_dept.id + INNER JOIN auth_user + on auth_dept_user.userId = auth_user.id + INNER JOIN auth_dept on auth_dept_user.deptId = auth_dept.id and deptId = #{deptId} @@ -64,27 +66,21 @@ > delete from auth_dept_user - where deptId in + where deptId in #{item} - insert INTO auth_dept_user - ( - deptId,userId - ) - values + (deptId, userId) + values - ( - #{item.deptId}, - #{item.userId} - ) + (#{item.deptId}, + #{item.userId}) - diff --git a/src/main/resources/mybatis/mapper/system/SyncDataBustypeDao.xml b/src/main/resources/mybatis/mapper/system/SyncDataBustypeDao.xml index afc68a6df..732e61ae5 100644 --- a/src/main/resources/mybatis/mapper/system/SyncDataBustypeDao.xml +++ b/src/main/resources/mybatis/mapper/system/SyncDataBustypeDao.xml @@ -9,20 +9,16 @@ - - DELETE - FROM sync_data_bustypes - insert INTO sync_data_bustypes - (`action`, `name`, outChange, orderStatus) + (`action`, `name`, outChange, orderStatus, direct) values (#{item.action}, #{item.name}, - #{item.outChange}, #{item.orderStatus}) + #{item.outChange}, #{item.orderStatus}, #{item.direct}) diff --git a/src/main/resources/mybatis/mapper/system/SyncDataPurtypeDao.xml b/src/main/resources/mybatis/mapper/system/SyncDataPurtypeDao.xml deleted file mode 100644 index 9f7536b6e..000000000 --- a/src/main/resources/mybatis/mapper/system/SyncDataPurtypeDao.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - DELETE - FROM sync_data_purtype - - - - insert INTO sync_data_purtype - (`action`, `name`, orderStatus) - values - - - (#{item.action}, #{item.name}, - #{item.orderStatus}) - - - diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrBusTypeOriginDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrBusTypeOriginDao.xml index dde42bcea..74f939689 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrBusTypeOriginDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrBusTypeOriginDao.xml @@ -18,7 +18,7 @@ - select tbo.*, thr_system.thirdName thirdSysName from thr_bustype_origin tbo left join thr_system on tbo.thirdSys = thr_system.thirdId diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index 947b9db3c..0387239b7 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -102,6 +102,10 @@ CALL Pro_Temp_ColumnWork('inv_prein_detail', 'status', 'tinyint', 1); CALL Pro_Temp_ColumnWork('inv_prein_detail', 'originCount', 'int', 1); CALL Pro_Temp_ColumnWork('inv_prein_detail', 'originReCount', 'int', 1); +CALL Pro_Temp_ColumnWork('inv_prein_detail', 'mainAction', 'varchar(255)', 1); +CALL Pro_Temp_ColumnWork('inv_prein_detail', 'action', 'varchar(255)', 1); + + CALL Pro_Temp_ColumnWork('io_code_lost', 'nameCode', 'varchar(255)', 1); INSERT ignore INTO `sys_param_config`(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`, @@ -118,6 +122,8 @@ CALL Pro_Temp_ColumnWork('inv_remind_msg', 'remindCount', 'int', 1); CALL Pro_Temp_ColumnWork('sup_cert_remind_msg', 'remindCount', 'int', 1); CALL Pro_Temp_ColumnWork('sync_data_bustypes', 'orderStatus', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_bustypes', 'direct', 'tinyint', 1); + CALL Pro_Temp_ColumnWork('sup_manufacturer', 'agentName', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('sys_pdf_module', 'modelKey', 'varchar(255)', 1); @@ -142,6 +148,13 @@ CALL Pro_Temp_ColumnWork('auth_warehouse', 'updateTime', 'datetime ', 1); CALL Pro_Temp_ColumnWork('sync_data_set', 'basicType', 'tinyint', 1); CALL Pro_Temp_ColumnWork('sync_data_set', 'basicDept', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'updateTime', 'datetime', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'orderToInSyncTime', 'int', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'supCert', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'systemConfig', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'printConfig', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'scanChangeConfig', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('sync_data_set', 'busChangeConfig', 'tinyint', 1); # CALL Pro_Temp_ColumnWork('sup_cert_set', 'foreign', 'tinyint', 3); # CALL Pro_Temp_ColumnWork('sup_cert_set', 'needForeign', 'tinyint', 1);