diff --git a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java index 0e109b79d..4106a53d7 100644 --- a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java +++ b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java @@ -24,7 +24,6 @@ import com.glxp.api.res.basic.BasicBussinessTypeResponse; import com.glxp.api.service.auth.*; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.system.SystemParamConfigService; -import com.glxp.api.util.BeanCopyUtils; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; @@ -170,9 +169,15 @@ public class InvWarehouseController extends BaseController { filterInvSubWarehouseRequest.setAdvanceType(1); } List invWarehouseEntities = invWarehouseService.filterInvSubWarehouse(filterInvSubWarehouseRequest); + List invWarehouseEntities1 = new ArrayList<>(); + for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) { + if(!"".equals(invWarehouseEntity.getParentCode())){ + invWarehouseEntities1.add(invWarehouseEntity); + } + } List results = new ArrayList<>(); - if (CollUtil.isNotEmpty(invWarehouseEntities)) { - invWarehouseEntities.forEach(invWarehouseEntity -> { + if (CollUtil.isNotEmpty(invWarehouseEntities1)) { + invWarehouseEntities1.forEach(invWarehouseEntity -> { if (!invWarehouseEntity.getCode().equals(filterInvWarehouseRequest.getLocInvCode())) { results.add(invWarehouseEntity); } 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 8d87f11a7..d5d305ed6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1185,7 +1185,8 @@ public class IoCodeTempController extends BaseController { public void deleteEmptyBillNo(IoOrderEntity orderEntity) { boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); - if (!r1 && !r2) { + boolean r3 = codeTempService.isExit(orderEntity.getBillNo()); + if (!r1 && !r2 && !r3) { orderService.deleteByBillNo(orderEntity.getBillNo()); } } 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 b6301be71..b43342795 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -17,6 +17,7 @@ import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.InvBusUserEntity; import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.http.sync.SpGetHttpClient; @@ -31,6 +32,7 @@ import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.service.basic.BasicCorpService; import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; @@ -45,10 +47,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; @@ -75,6 +75,8 @@ public class IoOrderController extends BaseController { IoAddInoutService ioAddInoutService; @Resource IoCheckInoutService ioCheckInoutService; + @Resource + BasicCorpService basicCorpService; /** * 查询单据列表 @@ -270,10 +272,27 @@ public class IoOrderController extends BaseController { IoOrderEntity orderEntity = new IoOrderEntity(); if (StrUtil.isEmpty(addOrderRequest.getAction())) return ResultVOUtils.error(500, "单据类型不能为空"); - orderEntity.setAction(addOrderRequest.getAction()); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); + BasicCorpEntity basicCorpEntity = new BasicCorpEntity(); + //要是特殊往来信息没有就创建 + if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { + basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp()); + if (basicCorpEntity == null) { + basicCorpEntity = new BasicCorpEntity(); + basicCorpEntity.setErpId(CustomUtil.getUnitId()); + basicCorpEntity.setCorpType(ConstantStatus.CORP_SICK); + basicCorpEntity.setOutType(ConstantStatus.CORP_SICK_SICK); + basicCorpEntity.setName(addOrderRequest.getFromCorp()); + basicCorpEntity.setId(IdUtil.getSnowflakeNextId()); + basicCorpService.insert(basicCorpEntity); + } + orderEntity.setFromCorp(basicCorpEntity.getErpId()); + }else { + orderEntity.setFromCorp(addOrderRequest.getFromCorp()); + } + orderEntity.setAction(addOrderRequest.getAction()); orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); - orderEntity.setFromCorp(addOrderRequest.getFromCorp()); orderEntity.setRemark(addOrderRequest.getRemark()); orderEntity.setFromInvCode(addOrderRequest.getFromInvCode()); orderEntity.setDeptCode(addOrderRequest.getDeptCode()); @@ -746,11 +765,17 @@ public class IoOrderController extends BaseController { originOrder.setReplicateNo(orderNo); List supplementCodes = new ArrayList<>(); - - // 生成业务单 + List products = addOrderChangeRequest.getProducts(); List orderDetailBizEntities = orderDetailBizService.findByOrderId(originOrder.getBillNo()); - if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + // 计算出两个集合之间产品批次号组成的差异 + List IoStatDayEntityList = orderDetailBizEntities.stream() + .filter(comment -> products.stream() + .anyMatch(p -> Objects.equals(p.getBatchNo(), comment.getBatchNo()) // 使用 Objects.equals 来进行非空判断 + && Objects.equals(p.getRelId(), comment.getBindRlFk()))) + .collect(Collectors.toList()); + //生成业务单 + if (CollUtil.isNotEmpty(IoStatDayEntityList)) { + for (IoOrderDetailBizEntity orderDetailBizEntity : IoStatDayEntityList) { orderDetailBizEntity.setOrderIdFk(newOrder.getBillNo()); orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); orderDetailBizService.insert(orderDetailBizEntity); @@ -758,7 +783,7 @@ public class IoOrderController extends BaseController { } - List products = addOrderChangeRequest.getProducts(); + originCodes.forEach( code -> { //复制选中的产品 diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThrDeptController.java b/src/main/java/com/glxp/api/controller/thrsys/ThrDeptController.java index 760e55759..eae1c787f 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThrDeptController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThrDeptController.java @@ -103,8 +103,10 @@ public class ThrDeptController { //查询该部门下的仓库 filterThrSubInvWarehouseRequest.setParentId(thrDeptEntity1.getCode()); List thrDept = thrInvWarehouseService.filterThrInvWarehouse(filterThrSubInvWarehouseRequest); + for (ThrInvWarehouseEntity thrInvWarehouseEntity : thrDept) { thrInvWarehouseEntity.setParentId(thrDeptEntity.getCode()); + thrInvWarehouseEntity.setThirdSysFk(thrDeptEntity.getThirdSysFk()); //修改仓库 thrInvWarehouseService.updateThrInvWarehouse(thrInvWarehouseEntity); } @@ -113,7 +115,7 @@ public class ThrDeptController { filterThrDeptRequest.setName(thrDeptEntity.getName()); filterThrDeptRequest.setThirdSysFk(thrDeptEntity.getThirdSysFk()); filterThrDeptRequest.setStatus(thrDeptEntity.getStatus()); - if (!thrDeptService.editExit(thrDeptEntity.getCode(), thrDeptEntity.getCode(), thrDeptEntity.getId())) { + if (!thrDeptService.editExit(thrDeptEntity.getCode(), thrDeptEntity.getThirdSysFk(), thrDeptEntity.getId())) { thrDeptEntity.setPid(null); // 不能修改父级 pid thrDeptEntity.setUpdateTime(new Date()); boolean b = thrDeptService.updateInvWarehouse(thrDeptEntity); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index 9510573b7..e1c3137c5 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -38,4 +38,6 @@ public interface IoCodeTempService { * @return */ List findCodeList(FilterCodeRequest filterCodeRequest); + + boolean isExit(String orderId); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index bb1b5fee4..ca44942ee 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.inout.IoCodeTempEntity; +import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.inout.IoCodeTempService; @@ -86,4 +87,9 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.selectCodeList(filterCodeRequest); } + @Override + public boolean isExit(String orderId) { + return ioCodeTempDao.exists(new QueryWrapper().eq("orderId", orderId)); + } + } diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 3c288962a..221619653 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -20,8 +20,8 @@ import javax.annotation.Resource; import java.util.Arrays; -@Component -@EnableScheduling +//@Component +//@EnableScheduling public class SyncHeartTask implements SchedulingConfigurer { final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); diff --git a/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml b/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml index 30f544330..43d5bc63d 100644 --- a/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml +++ b/src/main/resources/mybatis/mapper/thrsys/ThrProductsDao.xml @@ -84,9 +84,6 @@ AND thirdSysFk = #{thirdSysFk} - - AND thirdSys = #{thirdSys} - AND supName LIKE = #{supName}