From ca698284e873a791776ebd8bd5d483d26669eb8d Mon Sep 17 00:00:00 2001 From: FOAM <491460741@qq.com> Date: Tue, 19 Aug 2025 14:27:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=EF=BC=8C=E6=95=B4=E7=AE=B1?= =?UTF-8?q?=E5=85=A5=E5=BA=93=EF=BC=8C=E6=95=B4=E7=AE=B1=E5=87=BA=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/BomAccountRepository.java | 24 ++- .../basicdata/repository/PointRepository.java | 3 + .../basicdata/rest/AreaController.java | 3 - .../basicdata/rest/BomAccountController.java | 72 +++++---- .../basicdata/service/BomAccountService.java | 2 +- .../service/dto/BomAccountQueryCriteria.java | 4 + .../service/impl/BomAccountServiceImpl.java | 9 +- .../service/impl/BoxServiceImpl.java | 6 +- .../service/impl/ImportAsnServiceImpl.java | 37 +++-- .../impl/ImportBomAccountServiceImpl.java | 39 +++-- .../service/impl/ImportDataServiceImpl.java | 9 +- .../com/youchain/businessdata/domain/Asn.java | 2 +- .../businessdata/domain/Inventory.java | 1 - .../inputJson/PutawayRequest.java | 17 ++ .../buttenJson/PickTicketButton.java | 2 +- .../repository/AsnDetailRepository.java | 3 + .../repository/AsnRepository.java | 7 +- .../repository/InventoryRepository.java | 5 + .../repository/PickTicketRepository.java | 4 + .../businessdata/rest/AsnController.java | 113 ++++++++++++-- .../rest/AsnDetailController.java | 124 ++------------- .../rest/PickDetailController.java | 7 +- .../businessdata/rest/PickOutController.java | 6 +- .../rest/PickTicketController.java | 106 ++++++++++++- .../rest/XppRecordController.java | 12 +- .../businessdata/returnJson/BomPrint.java | 1 + .../returnJson/BomPrint_BiaoQian.java | 2 + .../returnJson/BomPrint_BiaoQian2.java | 2 + .../businessdata/returnJson/PutawayRet.java | 29 ++++ .../service/AsnDetailService.java | 11 ++ .../businessdata/service/AsnService.java | 4 +- .../service/InventoryService.java | 4 +- .../businessdata/service/ItemKeyService.java | 2 +- .../service/PickDetailService.java | 2 +- .../service/PickTicketService.java | 1 + .../businessdata/service/TaskService.java | 2 +- .../service/dto/AsnQueryCriteria.java | 3 + .../service/dto/InventoryQueryCriteria.java | 4 + .../service/dto/PickTicketQueryCriteria.java | 2 + .../service/impl/AsnDetailServiceImpl.java | 146 ++++++++++++++++-- .../service/impl/AsnServiceImpl.java | 10 +- .../service/impl/CountMoveServiceImpl.java | 4 +- .../service/impl/InventoryServiceImpl.java | 23 ++- .../service/impl/ItemKeyServiceImpl.java | 8 +- .../service/impl/PickDetailServiceImpl.java | 13 +- .../impl/PickInstructionServiceImpl.java | 2 +- .../service/impl/PickTicketServiceImpl.java | 25 +-- .../service/impl/SparepartsServiceImpl.java | 2 +- .../service/impl/TaskServiceImpl.java | 5 +- .../service/impl/XppRecordServiceImpl.java | 13 +- .../java/com/youchain/utils/BaseStatus.java | 24 ++- .../resources/config/application-prod.yml | 2 +- .../src/main/resources/config/application.yml | 4 +- 53 files changed, 659 insertions(+), 308 deletions(-) create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/inputJson/PutawayRequest.java create mode 100644 youchain-system/src/main/java/com/youchain/businessdata/returnJson/PutawayRet.java diff --git a/youchain-system/src/main/java/com/youchain/basicdata/repository/BomAccountRepository.java b/youchain-system/src/main/java/com/youchain/basicdata/repository/BomAccountRepository.java index a56b6b8..aba8f67 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/repository/BomAccountRepository.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/repository/BomAccountRepository.java @@ -73,24 +73,22 @@ public interface BomAccountRepository extends JpaRepository, J Long getItemAreaId( Long item_id); //获得所有BOM标签 - @Query(value = "select CONCAT(it.code,'/',ba.ns) ns,it.name pm,ba.xz,ba.srs,ba.bonded,ba.supplier,GROUP_CONCAT(bi.master_name) jxs ,GROUP_CONCAT(ba.singles) tyls,\n" + - "CONCAT('code:',it.code,'ns:',ba.ns,'sb:',ba.bonded,'kw:',point.code) ewm\n" + + //SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2)) + @Query(value = "select it.code, ba.ns,it.name pm,point.code hw,ba.xz,ba.srs,ba.bonded,ba.supplier," + + // "GROUP_CONCAT(SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2))) jxs ,GROUP_CONCAT(ba.singles) tyls " + + "GROUP_CONCAT(bi.master_name) jxs ,GROUP_CONCAT(ba.singles) tyls " + "from base_bom_account ba \n" + "LEFT JOIN base_big_item bi on bi.id=ba.big_item_id\n" + "left join base_item it on it.id=ba.item_id\n" + "left join base_point point on point.id=ba.z_point_id" + - " where (it.code=:itemCode or :itemCode is null) and (point.code=:hw or :hw is null) and (ba.ns=:ns or :ns is null)" + - "GROUP BY it.code,it.name,ba.ns,ba.xz,ba.srs,ba.bonded,ba.supplier,point.code ", nativeQuery = true) - List queryPrintAll(String itemCode, String hw, String ns); + " left join base_area area on area.id=ba.r_area_id" + + " where ba.bp_type=:dxw and (it.code=:itemCode or :itemCode is null) and (point.code=:hw or :hw is null) " + + " and (area.code=:kq or :kq is null) and (ba.ns=:ns or :ns is null)" + + "GROUP BY it.code,it.name,ba.ns,ba.xz,ba.srs,ba.bonded,ba.supplier,point.code " + + "order by point.code ", nativeQuery = true) + List queryPrintAll(String itemCode, String hw, String ns,String kq,String dxw); + - @Query(value = "select CONCAT(it.code,'/',ba.ns) ns,it.name pm,ba.xz,ba.srs,ba.bonded,ba.supplier,GROUP_CONCAT(bi.master_name) jxs ,GROUP_CONCAT(ba.singles) tyls,\n" + - "CONCAT('code:',it.code,'ns:',ba.ns,'sb:',ba.bonded,'kw:',point.code) ewm\n" + - "from base_bom_account ba \n" + - "LEFT JOIN base_big_item bi on bi.id=ba.big_item_id\n" + - "left join base_item it on it.id=ba.item_id\n" + - "left join base_point point on point.id=ba.z_point_id\n" + - "GROUP BY it.code,it.name,ba.ns,ba.xz,ba.srs,ba.bonded,ba.supplier,point.code ", nativeQuery = true) - List queryPrintAll(); } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java b/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java index d292994..5159b08 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/repository/PointRepository.java @@ -36,6 +36,9 @@ public interface PointRepository extends JpaRepository, JpaSpecific public List getPointList(String type); @Query(value = "SELECT p.* FROM base_point p WHERE p.code=?1", nativeQuery = true) Point findByCode(String code); + + @Query(value = "SELECT p.* FROM base_point p WHERE p.code=:code and p.type=:type", nativeQuery = true) + Point findByCodeType(String code,String type); /*@Query(value = "SELECT p.* FROM base_point p WHERE p.code=?1", nativeQuery = true) List findByCodes(String code);*/ diff --git a/youchain-system/src/main/java/com/youchain/basicdata/rest/AreaController.java b/youchain-system/src/main/java/com/youchain/basicdata/rest/AreaController.java index e35192d..041869f 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/rest/AreaController.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/rest/AreaController.java @@ -64,10 +64,7 @@ public class AreaController { private final AreaService areaService; private final PointService pointService; - private final DeptService deptService; - private final DeptMapper deptMapper; private final PointRepository pointRepository; - private final AreaMapper areaMapper; private final AreaRepository areaRepository; @PostMapping("/getAreas") diff --git a/youchain-system/src/main/java/com/youchain/basicdata/rest/BomAccountController.java b/youchain-system/src/main/java/com/youchain/basicdata/rest/BomAccountController.java index 27b6a93..6a99e32 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/rest/BomAccountController.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/rest/BomAccountController.java @@ -51,6 +51,7 @@ import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -98,53 +99,64 @@ public class BomAccountController { } - @GetMapping("/queryBomPrintList") - @Log("查询bom打印标签") - @ApiOperation("查询bom打印标签") + @GetMapping("/queryBomPrintListD") + @Log("查询中大物标签") + @ApiOperation("查询中大物标签") @AnonymousAccess - public ResponseEntity queryBomPrintList(BomAccountQueryCriteria criteria){ + public ResponseEntity queryBomPrintListD(BomAccountQueryCriteria criteria){ RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); - redisUtils.del(SecurityUtils.getCurrentUsername()+"_BiaoQian"); - List list=bomAccountService.queryPrintAll(criteria); - boolean isok=redisUtils.set(SecurityUtils.getCurrentUsername()+"_BiaoQian", JsonUtil.toJson(list)); - log.info(SecurityUtils.getCurrentUsername()+"_BiaoQian"+"-----isok:"+isok); - String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+"_BiaoQian"); - log.info(SecurityUtils.getCurrentUsername()+"_BiaoQian"+"-----"+json); - - - List list2= JSONUtil.toList(json, BomPrint_BiaoQian2.class); - for(BomPrint_BiaoQian2 l:list2){ - log.info(l.getNs()); - } - + redisUtils.del(SecurityUtils.getCurrentUsername()+"_BiaoQian_D"); + List list=bomAccountService.queryPrintAll(criteria,"中大物标签"); + redisUtils.set(SecurityUtils.getCurrentUsername()+"_BiaoQian_D",JsonUtil.toJson(list)); return new ResponseEntity<>(list,HttpStatus.OK); } - @GetMapping("/bomPrintBiaoQianList") + @GetMapping("/queryBomPrintListX") + @Log("查询小物标签") + @ApiOperation("查询小物标签") + @AnonymousAccess + public ResponseEntity queryBomPrintListX(BomAccountQueryCriteria criteria){ + RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); + redisUtils.del(SecurityUtils.getCurrentUsername()+"_BiaoQian_X"); + List list=bomAccountService.queryPrintAll(criteria,"小物标签"); + redisUtils.set(SecurityUtils.getCurrentUsername()+"_BiaoQian_X",JsonUtil.toJson(list)); + return new ResponseEntity<>(list,HttpStatus.OK); + } + + @GetMapping("/bomPrintBiaoQianList/{dxw}") @Log("获取Bom中库位标签") @ApiOperation("获取Bom中库位标签") @AnonymousAccess - public ResponseEntity bomPrintBiaoQianList(){ - log.info(SecurityUtils.getCurrentUsername()+"_BiaoQian"); + public ResponseEntity bomPrintBiaoQianList(@PathVariable("dxw") String dxw){ RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class); - - String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+"_BiaoQian"); - log.info(SecurityUtils.getCurrentUsername()+"_BiaoQian"+"-----"+json); - - + String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+dxw); + log.info(SecurityUtils.getCurrentUsername()+dxw+"-----"+json); List list= JSONUtil.toList(json, BomPrint_BiaoQian2.class); - List list2=new ArrayList<>(); for(BomPrint_BiaoQian2 l:list){ BomPrint_BiaoQian bq=new BomPrint_BiaoQian(); - bq.setNs(l.getNs()); - bq.setHw(l.getHw()); + String code=l.getCode().substring(0,5)+"-"+l.getCode().substring(5,l.getCode().length()); + bq.setNs(l.getNs()+"/"+code); + bq.setCode(code); + String hw=l.getHw(); + hw=hw.substring(0,3)+"-"+hw.substring(3,hw.length()); + bq.setHw(hw); bq.setPm(l.getPm()); - bq.setEwm(l.getEwm()); + bq.setEwm(l.getCode()+";"+l.getNs()+";"+l.getBonded()+";"+l.getHw()); bq.setBonded(l.getBonded()); bq.setSrs(l.getSrs()); + bq.setXz(l.getXz()); bq.setSupplier(l.getSupplier()); - bq.setJxs(l.getJxs()==null?null:l.getJxs().split(",")); + if(dxw.equals("_BiaoQian_D")){ + bq.setJxs(l.getJxs() == null ? null : + Arrays.stream(l.getJxs().split(",")) + .map(s -> s.length() > 10 ? s.substring(0, 10) : s) + .toArray(String[]::new)); + + + }else { + bq.setJxs(l.getJxs() == null ? null : l.getJxs().split(",")); + } bq.setTyls(l.getTyls()==null?null:l.getTyls().split(",")); list2.add(bq); } diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/BomAccountService.java b/youchain-system/src/main/java/com/youchain/basicdata/service/BomAccountService.java index d1d02df..c5c2f36 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/BomAccountService.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/BomAccountService.java @@ -51,7 +51,7 @@ public interface BomAccountService { */ List queryAll(BomAccountQueryCriteria criteria); - List queryPrintAll(BomAccountQueryCriteria criteria); + List queryPrintAll(BomAccountQueryCriteria criteria,String dxw); /** * 根据ID查询 diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/dto/BomAccountQueryCriteria.java b/youchain-system/src/main/java/com/youchain/basicdata/service/dto/BomAccountQueryCriteria.java index 57a682c..b4669d5 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/dto/BomAccountQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/dto/BomAccountQueryCriteria.java @@ -58,4 +58,8 @@ public class BomAccountQueryCriteria{ @Query private String outType; + @Query + private String ns; + @Query + private String bp_type; } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BomAccountServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BomAccountServiceImpl.java index 60717ff..0d7d1c6 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BomAccountServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BomAccountServiceImpl.java @@ -88,15 +88,12 @@ public class BomAccountServiceImpl implements BomAccountService { return bomAccountMapper.toDto(bomAccountRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); } - public List queryPrintAll(BomAccountQueryCriteria criteria){ - - List bomPrints=bomAccountRepository.queryPrintAll(criteria.getItemCode(),null,null); -// List bomPrints=bomAccountRepository.queryPrintAll(); - log.info(bomPrints.toString()); - + public List queryPrintAll(BomAccountQueryCriteria criteria,String dxw){ + List bomPrints=bomAccountRepository.queryPrintAll(criteria.getItemCode(),criteria.getZPointCode(),criteria.getNs(),criteria.getRAreaCode(),dxw); return bomPrints; } + @Override @Transactional @Cacheable(key = "'id:' + #p0") diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BoxServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BoxServiceImpl.java index 5a9f705..551dac1 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BoxServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/BoxServiceImpl.java @@ -76,7 +76,7 @@ public class BoxServiceImpl implements BoxService { private final PointService pointService; private final StockService stockService; private final ItemService itemService; - private final AsnDetailService asnDetailService; +// private final AsnDetailService asnDetailService; private final ItemKeyService itemKeyService; private final TaskService taskService; private final InventoryService inventoryService; @@ -322,10 +322,10 @@ public class BoxServiceImpl implements BoxService { Date date = cn.hutool.core.date.DateUtil.date(); String propC1 = DateUtil.format(date, "yyyyMMdd"); asnDetail.setPropC1(propC1); - asnDetailService.create(asnDetail); +// asnDetailService.create(asnDetail); //生成Itemkey - ItemKey itemKey = itemKeyService.getItemKey(item, asnDetail.getPropC1()); + ItemKey itemKey = itemKeyService.getItemKey(item, asnDetail.getPropC1(),asnDetail.getPropC2()); //生成入库记录 diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportAsnServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportAsnServiceImpl.java index 849cae2..0359c30 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportAsnServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportAsnServiceImpl.java @@ -12,6 +12,7 @@ import com.youchain.businessdata.inputJson.imports.invoicePackingImport; import com.youchain.businessdata.repository.*; import com.youchain.businessdata.service.*; import com.youchain.exception.BadRequestException; +import com.youchain.modules.system.domain.Dept; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -41,6 +42,8 @@ public class ImportAsnServiceImpl implements ImportAsnService { private final AsnService asnService; + private final CodeUtils codeUtils; + @Override @Transactional(rollbackFor = Exception.class) public void importAsn(MultipartFile file, String templateType) { @@ -119,14 +122,17 @@ public class ImportAsnServiceImpl implements ImportAsnService { log.info("处理批量导入,数据条数: {}", dataList.size()); //获取文件中所有的托盘号 - List codes = dataList.stream().map(BaseImport::getCNo).collect(Collectors.toList()); - + List cusCodes = dataList.stream().map(BaseImport::getCNo).collect(Collectors.toList()); + cusCodes = cusCodes.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); //验证托盘号 - validateAsn(codes); + validateAsn(cusCodes); //获取文件中所有的品番 - List itemCodes = dataList.stream().map(BaseImport::getPartNo).collect(Collectors.toList()); - +// List itemCodes = dataList.stream().map(BaseImport::getPartNo).collect(Collectors.toList()); + List itemCodes = dataList.stream() + .map(item -> item.getPartNo().replace("-", "")) + .collect(Collectors.toList()); + itemCodes = itemCodes.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); //验证品番 Map exitItemMap = validateItem(itemCodes); @@ -134,8 +140,8 @@ public class ImportAsnServiceImpl implements ImportAsnService { Area area = areaService.findByCode(BaseStatus.DEFAULT_AREA); //单据类型 - BillType billType = billTypeRepository.findByName(BaseStatus.RK); - + BillType billType = billTypeRepository.findByName(BaseStatus.XDRK); + Dept dept=UserUtils.getDept(); Map asnMap = new HashMap<>(); List insertToAsn = new ArrayList<>();//批量新增ASN List insertToAsnDetail = new ArrayList<>();//批量新增asnDetail @@ -147,9 +153,8 @@ public class ImportAsnServiceImpl implements ImportAsnService { String remark = data.getDescription();//描述 String orderQty = data.getQty();//数量 String code = data.getCNo();//托盘号 - //品番 - Item item = exitItemMap.get(itemCode); + Item item = exitItemMap.get(itemCode.replace("-", "")); Asn asn; if (asnMap.containsKey(code)) { @@ -158,8 +163,8 @@ public class ImportAsnServiceImpl implements ImportAsnService { } else { asn = Asn.builder() .relatedBill1(relatedBill1) - .code(code) - .area(area) + .code(codeUtils.getCode_yyMMdd(billType.getPrefix()+'-', 3)) + .cusCode(code) .status(BizStatus.OPEN) .orderDate(new Timestamp(new Date().getTime())) .orderQuantity(Double.parseDouble(orderQty)) @@ -184,7 +189,7 @@ public class ImportAsnServiceImpl implements ImportAsnService { .putQty(0d) .weight(0d) .volume(0d) - .dept(item.getDept()) + .dept(dept) .build(); insertToAsnDetail.add(asnDetail); } @@ -215,11 +220,11 @@ public class ImportAsnServiceImpl implements ImportAsnService { } //验证ASN单号 - private void validateAsn(List codes) { - Map exitAsnMap = asnService.queryByasnCodesToMap(codes); - List existingAsnCodes = new ArrayList<>(exitAsnMap.keySet()); + private void validateAsn(List cusCodes) { + Map exitAsnMap = asnService.queryByCusCodesToMap(cusCodes); + List existCusCodes = new ArrayList<>(exitAsnMap.keySet()); // 获取两个集合的交集说明ASN重复导入了,直接提示 - List difference = SmartStringUtil.getIntersection(codes, existingAsnCodes); + List difference = SmartStringUtil.getIntersection(cusCodes, existCusCodes); if (CollectionUtils.isNotEmpty(difference)) { //去重difference difference = difference.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportBomAccountServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportBomAccountServiceImpl.java index 58ca291..0688c6e 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportBomAccountServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportBomAccountServiceImpl.java @@ -33,13 +33,10 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService { private final ItemService itemService; private final BigItemService bigItemService; private final PointService pointService; - private final AsnService asnService; - private final AreaService areaService; private final ItemRepository itemRepository; private final BigItemRepository bigItemRepository; - private final PointRepository pointRepository; private final BomAccountRepository bomAccountRepository; - private final AreaRepository areaRepository; + private final BomAccountLogService bomAccountLogService; @Override @Transactional(rollbackFor = Exception.class) @@ -79,7 +76,7 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService { it.setPm(data.getPm()); it.setSrs(data.getSrs()); itemEntitys.put(data.getPf(),it); - bomEntitys=batchBomEntitys(data,bomEntitys); + bomEntitys=batchBomEntitys(data,bomEntitys); } //验证品番 @@ -113,6 +110,13 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService { BomAccount ba = this.BaEntity(existBom, entity, bigItem,item, point, entity.tyl,null); createBomList.add(ba); } +// if (isNew) { +// bomAccountService.create(bomAccount); +// bomAccountLogService.copyBomAccount(bomAccount.getId(), "import_add"); +// } else { +// bomAccountService.update(bomAccount); +// bomAccountLogService.copyBomAccount(bomAccount.getId(), "import_update"); +// } if(CollectionUtils.isNotEmpty(createBomList)){ bomAccountRepository.saveAll(createBomList); } @@ -120,7 +124,6 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService { bomAccountRepository.saveAll(updateBomList); } } - } //验证品番 @@ -219,18 +222,22 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService { "货位", "箱种", "收容数", - "台车库位", + "工程(台车库位)", "大小物", "税别", - // 机型1-38 及对应的台用量 - "机型1", "台用量1", "机型2", "台用量2", "机型3", "台用量3", "机型4", "台用量4", "机型5", "台用量5", - "机型6", "台用量6", "机型7", "台用量7", "机型8", "台用量8", "机型9", "台用量9", "机型10", "台用量10", - "机型11", "台用量11", "机型12", "台用量12", "机型13", "台用量13", "机型14", "台用量14", "机型15", "台用量15", - "机型16", "台用量16", "机型17", "台用量17", "机型18", "台用量18", "机型19", "台用量19", "机型20", "台用量20", - "机型21", "台用量21", "机型22", "台用量22", "机型23", "台用量23", "机型24", "台用量24", "机型25", "台用量25", - "机型26", "台用量26", "机型27", "台用量27", "机型28", "台用量28", "机型29", "台用量29", "机型30", "台用量30", - "机型31", "台用量31", "机型32", "台用量32", "机型33", "台用量33", "机型34", "台用量34", "机型35", "台用量35", - "机型36", "台用量36", "机型37", "台用量37", "机型38", "台用量38" + "机型", + "机型代码", + "组顺/刻印号前2位", + "台用量" +// // 机型1-38 及对应的台用量 +// "机型1", "台用量1", "机型2", "台用量2", "机型3", "台用量3", "机型4", "台用量4", "机型5", "台用量5", +// "机型6", "台用量6", "机型7", "台用量7", "机型8", "台用量8", "机型9", "台用量9", "机型10", "台用量10", +// "机型11", "台用量11", "机型12", "台用量12", "机型13", "台用量13", "机型14", "台用量14", "机型15", "台用量15", +// "机型16", "台用量16", "机型17", "台用量17", "机型18", "台用量18", "机型19", "台用量19", "机型20", "台用量20", +// "机型21", "台用量21", "机型22", "台用量22", "机型23", "台用量23", "机型24", "台用量24", "机型25", "台用量25", +// "机型26", "台用量26", "机型27", "台用量27", "机型28", "台用量28", "机型29", "台用量29", "机型30", "台用量30", +// "机型31", "台用量31", "机型32", "台用量32", "机型33", "台用量33", "机型34", "台用量34", "机型35", "台用量35", +// "机型36", "台用量36", "机型37", "台用量37", "机型38", "台用量38" ); List headers = FastExcelUtil.readHeadContent(file, requiredColumns, 0, 0); if (!SmartStringUtil.containsAllIgnoreCase(requiredColumns, headers)) { diff --git a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportDataServiceImpl.java b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportDataServiceImpl.java index 1c1ce19..1baa931 100644 --- a/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportDataServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/basicdata/service/impl/ImportDataServiceImpl.java @@ -51,19 +51,14 @@ import java.util.stream.Collectors; @RequiredArgsConstructor @Slf4j public class ImportDataServiceImpl implements ImportDataService { - private final FileProperties properties; private final BigItemRepository bigItemRepository; private final AreaRepository areaRepository; private final ItemRepository itemRepository; private final DictDetailRepository dictDetailRepository; private final PointRepository pointRepository; - private final AsnRepository asnRepository; - private final AsnDetailRepository asnDetailRepository; - private final PointService pointService; - private final AreaService areaService; private final BomAccountRepository bomAccountRepository; - private final AreaMapper areaMapper; - private final PointMapper pointMapper; + + private final PointService pointService; private final ItemService itemService; private final AsnDetailService asnDetailService; private final AsnService asnService; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Asn.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Asn.java index 4b3cc34..bd1b08e 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Asn.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Asn.java @@ -58,7 +58,7 @@ public class Asn extends BaseEntity implements Serializable { private String code; @OneToOne - @JoinColumn(name = "`area_id`",nullable = false) + @JoinColumn(name = "`area_id`") @NotNull @ApiModelProperty(value = "库区") private Area area; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java index c9a48e7..5b7af1c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Inventory.java @@ -144,7 +144,6 @@ public class Inventory extends BaseEntity implements Serializable { @ApiModelProperty(value = "制造库位") private Point zzkw; - public void copy(Inventory source) { BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/inputJson/PutawayRequest.java b/youchain-system/src/main/java/com/youchain/businessdata/inputJson/PutawayRequest.java new file mode 100644 index 0000000..ac5720f --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/inputJson/PutawayRequest.java @@ -0,0 +1,17 @@ +package com.youchain.businessdata.inputJson; + +import lombok.Data; + +import java.util.List; +@Data +public class PutawayRequest { + private List ids; // 使用 List 更通用 + private Long pointId; + + String stockCode;//托盘号 + String pointCode;//库位号 + String dstPointCode;//目标库位 + //1.校验托盘号;2.校验库位;3.上架确认; + // 4.箱单出库检索;6.箱单出库确认;7.箱单移位 + int checkType; +} diff --git a/youchain-system/src/main/java/com/youchain/businessdata/inputJson/buttenJson/PickTicketButton.java b/youchain-system/src/main/java/com/youchain/businessdata/inputJson/buttenJson/PickTicketButton.java index a0ac8b3..7a5fd9c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/inputJson/buttenJson/PickTicketButton.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/inputJson/buttenJson/PickTicketButton.java @@ -7,7 +7,7 @@ import java.util.List; @Data public class PickTicketButton { - //拣货确认按钮号 1整单拣货 2单一拣货 3批量拣货 4取消拣货 5拣货整单取消 6拣货批量取消 7现品票拣货 + //拣货确认按钮号 1整单拣货 2单一拣货 3批量拣货 4取消拣货 5拣货整单取消 6拣货批量取消 7现品票拣货,8 App箱单拣货 private int pickConfirmNo; //单一拣货 输入数量 private int onePickConfirmNumber; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnDetailRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnDetailRepository.java index 9e1844f..6f384b0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnDetailRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnDetailRepository.java @@ -32,4 +32,7 @@ import java.util.List; public interface AsnDetailRepository extends JpaRepository, JpaSpecificationExecutor { @Query(value = "SELECT * FROM `data_asn_detail` asnDetail WHERE asn_id = :id order by create_time DESC", nativeQuery = true) List queryByAsnId(@Param("id") Long id); + + @Query(value = "SELECT asnDetail.id FROM `data_asn_detail` asnDetail WHERE asn_id = :id", nativeQuery = true) + List queryIdsByAsn(@Param("id") Long id); } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnRepository.java index bbe7e9e..8ce470d 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/AsnRepository.java @@ -39,6 +39,9 @@ public interface AsnRepository extends JpaRepository, JpaSpecificatio @Query(value = "SELECT * FROM `data_asn` asn ORDER BY asn.create_time DESC LIMIT 0,1", nativeQuery = true) Asn queryMaxCode(); - @Query("from Asn asn where asn.code in (:asnCodes) ") - List queryByAsnCodes(List asnCodes); + @Query("from Asn asn where asn.cusCode in (:cusCodes)") + List queryByCusCodes(List cusCodes); + + @Query("from Asn asn where asn.cusCode=:cusCode and asn.status='OPEN'") + List queryByCusCode(String cusCode); } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java index e3cbedf..5f5f6d0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/InventoryRepository.java @@ -60,4 +60,9 @@ public interface InventoryRepository extends JpaRepository, Jpa " and p.type='CH'" , nativeQuery = true) List queryInventoryArea2(long areaId); + @Query(value = "SELECT * from data_inventory inv \n" + + "left join base_point p on inv.point_id=p.id\n" + + "WHERE inv.quantity>0 and p.type='CH' and inv.stock_code=:stockCode" , nativeQuery = true) + List queryInvStockCode(String stockCode); + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/repository/PickTicketRepository.java b/youchain-system/src/main/java/com/youchain/businessdata/repository/PickTicketRepository.java index 0ef12c1..8518af0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/repository/PickTicketRepository.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/repository/PickTicketRepository.java @@ -18,6 +18,7 @@ package com.youchain.businessdata.repository; import com.youchain.businessdata.domain.Asn; import com.youchain.businessdata.domain.PickTicket; import com.youchain.businessdata.domain.PlanPickDetail; +import com.youchain.utils.BizStatus; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; @@ -59,6 +60,9 @@ public interface PickTicketRepository extends JpaRepository, J @Query(value = "SELECT * FROM `data_pick_ticket` dpt where dpt.`status` = :status and dpt.`related_bill1` like :code", nativeQuery = true) List queryPickTicketByCodeAll(@Param("status") String status, @Param("code") String code); + @Query("from PickTicket pt where pt.cusCode=:cusCode and pt.status='ALLOCATE'") + List queryByCusCode(String cusCode); + @Transactional //也可以只标注在上层调用者方法上 @Modifying @Query(value = "UPDATE data_pick_ticket dpt set dpt.order_quantity = :orderQuantity where dpt.id= :id", nativeQuery = true) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnController.java index 208ea11..2946256 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnController.java @@ -15,14 +15,27 @@ */ package com.youchain.businessdata.rest; +import cn.hutool.json.JSONArray; +import com.youchain.DuplicateSubmission.DuplicateSubmission; import com.youchain.annotation.AnonymousAccess; import com.youchain.annotation.Log; +import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.repository.PointRepository; import com.youchain.basicdata.service.dto.BillTypeQueryCriteria; import com.youchain.businessdata.domain.Asn; +import com.youchain.businessdata.domain.AsnDetail; +import com.youchain.businessdata.inputJson.PutawayRequest; +import com.youchain.businessdata.repository.AsnDetailRepository; import com.youchain.businessdata.repository.AsnRepository; +import com.youchain.businessdata.returnJson.PutawayRet; +import com.youchain.businessdata.service.AsnDetailService; import com.youchain.businessdata.service.AsnService; +import com.youchain.businessdata.service.dto.AsnDetailDto; import com.youchain.businessdata.service.dto.AsnQueryCriteria; +import com.youchain.exception.BadRequestException; import com.youchain.exception.handler.ApiResult; +import com.youchain.utils.BaseStatus; +import com.youchain.utils.BizStatus; import com.youchain.utils.CodeUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Pageable; @@ -30,6 +43,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; @@ -37,8 +51,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Objects; +import java.util.*; import javax.servlet.http.HttpServletResponse; import static org.springframework.http.HttpStatus.OK; @@ -57,7 +70,10 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST; public class AsnController { private final AsnService asnService; + private final AsnDetailService asnDetailService; private final AsnRepository asnRepository; + private final AsnDetailRepository asnDetailRepository; + private final PointRepository pointRepository; private final CodeUtils codeUtils; @@ -69,14 +85,6 @@ public class AsnController { asnService.download(asnService.queryAll(criteria), response); } - @GetMapping(value = "/maxNo") - @Log("查询最大的单号") - @ApiOperation("查询最大单号") - @AnonymousAccess - public ResponseEntity maxNo(@RequestParam("code") String code) { - return new ResponseEntity<>(codeUtils.getCode_yyMMdd(code, 3), HttpStatus.OK); - } - @GetMapping @Log("查询asn") @@ -128,4 +136,89 @@ public class AsnController { asnService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/checkPutawayApp") + @Log("校验托盘号-APP") + @ApiOperation("校验托盘号-APP") + @PreAuthorize("@el.check('super:man')") + @Transactional(rollbackFor = Exception.class) + @DuplicateSubmission + public ResponseEntity checkPutawayApp(@RequestBody PutawayRequest request) { + String stockCode = request.getStockCode(); + int checkType=request.getCheckType(); + String pointCode= request.getPointCode(); + if(checkType==1) { + List asns = asnRepository.queryByCusCode(stockCode); + if (asns.size() <= 0) { + throw new BadRequestException(stockCode + "不存在"); + }else{ + Long asnId=asns.get(0).getId(); + List ads=asnDetailRepository.queryByAsnId(asnId); + List rets=new ArrayList<>(); + for(AsnDetail ad:ads){ + PutawayRet ret=new PutawayRet(); + ret.createPutawayRet(asnId,ad.getId(),ad.getItem().getCode(),ad.getItem().getName(),ad.getOrderQty(),ad.getPropC2(),ad.getPo()); +// ret.setBonded(ad.getPropC2()); +// ret.setPo(ad.getPo()); +// ret.setQty(ad.getOrderQty()); +// ret.setItemCode(ad.getItem().getCode()); +// ret.setItemName(ad.getItem().getName()); + rets.add(ret); + } + return new ResponseEntity<>(rets, HttpStatus.OK); + } + } else if (checkType==2) { + Point point=pointRepository.findByCodeType(pointCode, BaseStatus.CH); + if(point==null){ + throw new BadRequestException(pointCode + "不存在"); + } + } + return new ResponseEntity<>("操作成功", HttpStatus.OK); + } + + @PostMapping("/putawayApp") + @Log("上架确认-APP") + @ApiOperation("上架确认-APP") + @PreAuthorize("@el.check('super:man')") + @Transactional(rollbackFor = Exception.class) + @DuplicateSubmission + public ResponseEntity putawayApp(@RequestBody PutawayRequest request) { + String stockCode = request.getStockCode(); + int checkType=request.getCheckType(); + String pointCode= request.getPointCode(); + Point point=pointRepository.findByCodeType(pointCode, BaseStatus.CH); + if(point==null){ + throw new BadRequestException(pointCode + "不存在"); + } + List asns = asnRepository.queryByCusCode(stockCode); + if (asns.size() <= 0) { + throw new BadRequestException(stockCode + "不存在"); + } + Long asnId=asns.get(0).getId(); + List detailIds=asnDetailRepository.queryIdsByAsn(asnId); + for(Long detailId:detailIds) { + AsnDetail d=asnDetailRepository.getById(detailId); + asnDetailService.putawayInv(detailId,null,point.getId(),d.getOrderQty()-d.getReceivedQty(),null); + } + return new ResponseEntity<>("操作成功", HttpStatus.OK); + } + + @PostMapping("/mutilPutawaySys") + @Log("上架确认-系统") + @ApiOperation("上架确认-系统") + @PreAuthorize("@el.check('super:man')") + @Transactional(rollbackFor = Exception.class) + @DuplicateSubmission + public ResponseEntity mutilPutawaySys(@RequestBody PutawayRequest request) { + Long[] ids = request.getIds().toArray(new Long[0]); + Long pointId = request.getPointId(); + for (Long id:ids){ + List detailIds=asnDetailRepository.queryIdsByAsn(id); + for(Long detailId:detailIds) { + AsnDetail d=asnDetailRepository.getById(detailId); + asnDetailService.putawayInv(detailId,null,pointId,d.getOrderQty()-d.getReceivedQty(),null); + } + } + return new ResponseEntity<>("操作成功", HttpStatus.OK); + } } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java index ec6420e..4c71f46 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/AsnDetailController.java @@ -246,8 +246,7 @@ public class AsnDetailController { } } Area area=point.getArea(); - putawayInv(d.getId(),area.getId(),point.getId(),s.getQty(),ewm); - //直接上架确认 + asnDetailService.putawayInv(d.getId(),area.getId(),point.getId(),s.getQty(),ewm); } return new ResponseEntity<>("操作成功", HttpStatus.OK); } @@ -261,16 +260,7 @@ public class AsnDetailController { public ResponseEntity putawayXppApp(@RequestBody IRkPut s) { int seq=s.getSeq(); if(seq==1){ - XppRecord xppRecord =null; - String ewm = s.getEwm(); - xppRecord = xppRecordRepository.findByCode(ewm); - if(xppRecord==null){ - return new ResponseEntity<>(ewm + "二维码未采集", BAD_REQUEST); - } - if(!xppRecord.getStatus().equals(BizStatus.RECEIVED)&&!xppRecord.getStatus().equals(BizStatus.RETENTION_IN)){ - throw new BadRequestException(xppRecord.getItem().getCode()+"现品票状态不正确"); - } - RRkXpp map = xppRecordService.xppAnalysis(xppRecord); + RRkXpp map = xppRecordService.xppAnalysis(s.getEwm()); return new ResponseEntity<>(map, HttpStatus.OK); } if (seq==2) { @@ -284,12 +274,10 @@ public class AsnDetailController { } Area area=point.getArea(); for(String ewm:s.getEwms()){ - XppRecord xppRecord=xppRecordRepository.findByCode(ewm); - if(!xppRecord.getStatus().equals(BizStatus.RECEIVED)&&!xppRecord.getStatus().equals(BizStatus.RETENTION_IN)){ - throw new BadRequestException(xppRecord.getItem().getCode()+"现品票状态不正确"); - } - AsnDetail d = xppRecordService.addAsnDetail(xppRecord); - putawayInv(d.getId(), area.getId(), point.getId(), d.getOrderQty(),ewm); + XppRecord xppRecord = xppRecordService.saveXppRecord(ewm); + AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord); + asnDetailService.putawayInv(asnDetail.getId(),area.getId(),point.getId(),xppRecord.getNrs(),xppRecord.getEwm()); + } } return new ResponseEntity<>("操作成功", HttpStatus.OK); @@ -305,7 +293,7 @@ public class AsnDetailController { Long pointId=Long.parseLong(rk.get("pointId").toString()); AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord); Point point=pointService.findEntityById(pointId); - putawayInv(asnDetail.getId(),point.getArea().getId(),pointId,xppRecord.getNrs(),xppRecord.getEwm()); + asnDetailService.putawayInv(asnDetail.getId(),point.getArea().getId(),pointId,xppRecord.getNrs(),xppRecord.getEwm()); return new ResponseEntity<>("操作成功", HttpStatus.OK); } @@ -320,7 +308,7 @@ public class AsnDetailController { Long asnDetailId=Long.parseLong(rk.get("detailId").toString()); AsnDetailDto dto= asnDetailService.findById(asnDetailId); Double recQty=dto.getOrderQty()-dto.getReceivedQty(); - putawayInv(asnDetailId, Long.parseLong(rk.get("areaId").toString()) + asnDetailService.putawayInv(asnDetailId, Long.parseLong(rk.get("areaId").toString()) , Long.parseLong(rk.get("pointId").toString()),recQty,null); return new ResponseEntity<>("操作成功", HttpStatus.OK); } @@ -439,7 +427,7 @@ public class AsnDetailController { List asnDetails =asnDetailService.findAsnDetails(asnId,"1"); if (!asnDetails.isEmpty()) { for (AsnDetail d : asnDetails) { - this.putawayInv(d.getId(), byId.getArea().getId(), d.getPoint()==null?null:d.getPoint().getId(),(d.getOrderQty()-d.getReceivedQty()),null); + asnDetailService.putawayInv(d.getId(), byId.getArea().getId(), d.getPoint()==null?null:d.getPoint().getId(),(d.getOrderQty()-d.getReceivedQty()),null); byId.setReceivedDate(new Timestamp(System.currentTimeMillis())); byId.setReceivedQuantity(byId.getReceivedQuantity() + d.getOrderQty()); @@ -467,7 +455,7 @@ public class AsnDetailController { // 通用异常,使用自定义状态码 throw new BadRequestException(HttpStatus.NOT_FOUND, id + "库区未填写"); } - putawayInv(id,area.getId(),asnDetailButton.getOneRPoint().getId(),qty,null); + asnDetailService.putawayInv(id,area.getId(),asnDetailButton.getOneRPoint().getId(),qty,null); } else if (asnDetailButton.getButton() == 3) { long id = asnDetailButton.getId(); AsnDto byId = asnService.findById(id); @@ -538,7 +526,7 @@ public class AsnDetailController { // 通用异常,使用自定义状态码 throw new BadRequestException(HttpStatus.NOT_FOUND, id + "的副表" + asnDetailData.getId() + "的物料已经单一入库无法使用整单入库"); } - this.putawayInv(asnDetailData.getId(), byId.getArea().getId(), asnDetailData.getPoint().getId(),(asnDetailData.getOrderQty()-asnDetailData.getReceivedQty()),null); + asnDetailService.putawayInv(asnDetailData.getId(), byId.getArea().getId(), asnDetailData.getPoint().getId(),(asnDetailData.getOrderQty()-asnDetailData.getReceivedQty()),null); } if (apiResult.getStatus() == 200) { @@ -563,95 +551,5 @@ public class AsnDetailController { } - public void putawayInv(@RequestBody Long asnDetailId, Long areaId, Long pointId,double recQty,String ewm) { - AsnDetail d = asnDetailService.getEntity(asnDetailId); - Area area = areaService.findEntityById(areaId); - Point point = null; - if(pointId!=null){ - point = pointService.findEntityById(pointId); - } - Point zzkw=null; - if(area.getBexb()){ - point= pointService.getPoint(area.getPointCode(), null, BaseStatus.HCKW, null);//取默认线边库位 - zzkw=d.getPoint(); - if(zzkw==null){ - //取默认制造库位 - zzkw= pointService.getPoint("ZZKW", null, null, null); - } - } - if(point==null){ - throw new BadRequestException("请选择入库库位"); - } - double unRecQty=d.getOrderQty() - d.getReceivedQty(); - if ( recQty<=unRecQty) { - String pc1=null; - //现品票确认将任务id回写到现品票表中 - XppRecord xppRecord = xppRecordRepository.findByCode(ewm); - ItemKey ik=null; - if(xppRecord!=null){ - if(!xppRecord.getStatus().equals(BizStatus.RECEIVED)&&!xppRecord.getStatus().equals(BizStatus.RETENTION_IN)){ - throw new BadRequestException(d.getItem().getCode()+"现品票状态不正确"); - } - pc1=DateUtil.dateYmdz();//DateUtil.dateYmd(new Date()); - ik=xppRecord.getItemKey(); - } - if(ik==null){ - ik = itemKeyService.getItemKey(d.getItem(), pc1); - } - Task t = taskService.storeTask(d, null, area, ik, point, point,recQty); - if(xppRecord!=null) { - xppRecord.setRkTask(t); - xppRecord.setInvPoint(point); - xppRecord.setStatus(BizStatus.PUTAWAY); - xppRecord.setItemKey(ik); - xppRecord.setSjr(SecurityUtils.getCurrentUsername()); - xppRecord.setSjDate(new Timestamp(new Date().getTime())); - ewm=xppRecord.getEwm(); - xppRecordService.update(xppRecord); - } - d.setReceivedQty(d.getReceivedQty()+recQty); - if(d.getReceivedQty().intValue()>=d.getOrderQty().intValue()){ - d.setStatus(BizStatus.PUTAWAY); - }else if(d.getReceivedQty().intValue()>0){ - d.setStatus(BizStatus.PUTAWAY); - } - asnDetailService.update(d); - point.setStatus(BaseStatus.USED); - pointService.update(point); - Inventory inv = invService.getInventory(ik, area, point, zzkw, d.getDept(), BizStatus.RECEIVING_UP); - t.setInvId(inv.getId()); - taskService.update(t); - double srcQty = inv.getQuantity(); - inv.addQty(recQty); - invService.update(inv); - String billCode=null; - if(d.getAsn()!=null){ - Asn asn=d.getAsn(); - billCode=asn.getCode(); - asn.setReceivedQuantity(asn.getReceivedQuantity()+recQty); - if(asn.getReceivedQuantity().intValue()>=asn.getOrderQuantity().intValue()) { - asnService.update(asn); - } - } - Point srcPoint = pointService.getPoint(null, null, BaseStatus.SHZC, null); - InventoryLog log=invLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, billCode, area, ik, srcPoint, point, zzkw, srcQty, recQty,ewm, - BizStatus.ASN, d.getId(), inv.getId(), d.getRemark()); - //根据账号增加耗用 - String userName=SecurityUtils.getCurrentUsername(); - if(userName!=null&&(userName.equals("楚友刚")||userName.equals("李栓荣")||userName.equals("颜建斌"))){ - BigItem bigItem=bigItemRepository.findByCode(ik.getItem().getCode()); - if(bigItem!=null){//自动生成耗用计划 - List jsAreaIds=bomAccountRepository.getJsAreaList(bigItem.getId()); - for(Long id:jsAreaIds){ - AreaDto areaDto=areaService.findById(id); - Spareparts spareparts=sparepartsServiceImpl.createSpareparts(areaDto.getWorkingStation(),bigItem,xppRecord.getNrs(),"收货上架耗用"); - sparepartsServiceImpl.hySpareParts(spareparts.getId()); - } - } - } - } else { - throw new BadRequestException(d.getItem().getCode() + "收货数量不能大于未收数量"); - } - } } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickDetailController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickDetailController.java index b828cae..8190f1e 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickDetailController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickDetailController.java @@ -213,7 +213,7 @@ public class PickDetailController { for (Long picktickId : picktickIds) { List pickDetailList = pickDetailService.queryPickDetailList(picktickId); for (PickDetail pd : pickDetailList) { - pickDetailService.allocate(pd.getId(), pd.getOrderQty() - pd.getAllocatedQty()); + pickDetailService.allocate(pd.getId(), pd.getOrderQty() - pd.getAllocatedQty(),pd.getPo()); } } } catch (Exception e) { @@ -269,7 +269,7 @@ public class PickDetailController { newD.setAc(bomAccount.getAc()); newD.setSupplier(bomAccount.getSupplier()); newD.setPoint(bomAccount.getZPoint()); - pickDetailService.allocate(newD.getId(), newD.getOrderQty() - newD.getAllocatedQty()); + pickDetailService.allocate(newD.getId(), newD.getOrderQty() - newD.getAllocatedQty(),oldD.getPo()); oldD.setOrderQty(oldD.getOrderQty()-sbQty); oldD.setSourceId(newD.getId()); pickDetailService.update(oldD); @@ -400,6 +400,7 @@ public class PickDetailController { double orderQty = oldDetail.getOrderQty() - oldDetail.getAllocatedQty() - oldDetail.getBcQty(); PickDetail pickDetail = pickDetailService.createPickDetail(pickTicket, oldDetail.getItem(), null, orderQty, oldDetail.getSupplier()); pickDetail.setPoint(oldDetail.getPoint()); + pickDetail.setPo(oldDetail.getPo()); pickDetail.setPropC3(oldDetail.getPropC3()); pickDetail.setAc(oldDetail.getAc()); pickDetail.setContents(oldDetail.getContents()); @@ -409,7 +410,7 @@ public class PickDetailController { pickDetail.setArea(oldDetail.getArea()); pickDetail.setShArea(oldDetail.getShArea()); pickDetailService.update(pickDetail); - pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty()); + pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty(),pickDetail.getPo()); double bcQty = pickDetail.getAllocatedQty(); //将出单数写入到订单数 pickDetail.setOrderQty(bcQty); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickOutController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickOutController.java index a4bf3a2..481aa8c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickOutController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickOutController.java @@ -408,7 +408,7 @@ public class PickOutController { return; } //扣库存 - Inventory inventory = inventoryService.getInventory(log.getItemKey(),pt.getArea(),log.getDstPoint(),pd.getPoint(),log.getDept(),BizStatus.SHIPPING); + Inventory inventory = inventoryService.getInventory(log.getItemKey(),pt.getArea(),log.getDstPoint(),pd.getPoint(),log.getDept(),BizStatus.SHIPPING,null); if (inventory==null) { throw new BadRequestException(HttpStatus.NOT_FOUND, log.getItem().getCode() + "未发现库存数据"); } @@ -525,8 +525,8 @@ public class PickOutController { // Point point=pickOut.getShArea().getPoint(); Point point = pointService.findEntityById(pickDetail.getShArea().getPointId()); //线边接收不需要管理到批次,重新生成itemKey - ItemKey itemKey = itemKeyService.getItemKey(tasklog.getItemKey().getItem(), null); - Inventory inventory = inventoryService.getInventory(itemKey, pickDetail.getShArea(), point, pickDetail.getPoint(), dept, BizStatus.SL_ALL); + ItemKey itemKey = itemKeyService.getItemKey(tasklog.getItemKey().getItem(), null,task.getItemKey().getPropC2()); + Inventory inventory = inventoryService.getInventory(itemKey, pickDetail.getShArea(), point, pickDetail.getPoint(), dept, BizStatus.SL_ALL,null); double srcQty = inventory.getQuantity(); inventory.setQuantity(inventory.getQuantity() + tasklog.getSlQty()); inventoryService.update(inventory); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickTicketController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickTicketController.java index 2b4da1a..bdb5169 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickTicketController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickTicketController.java @@ -18,14 +18,19 @@ package com.youchain.businessdata.rest; import com.youchain.DuplicateSubmission.DuplicateSubmission; import com.youchain.annotation.AnonymousAccess; import com.youchain.annotation.Log; +import com.youchain.basicdata.domain.Area; +import com.youchain.basicdata.domain.BillType; import com.youchain.basicdata.domain.Item; import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.repository.BillTypeRepository; import com.youchain.basicdata.service.PointService; import com.youchain.businessdata.domain.*; import com.youchain.businessdata.inputJson.IPTask; import com.youchain.businessdata.inputJson.IScanPut; +import com.youchain.businessdata.inputJson.PutawayRequest; import com.youchain.businessdata.inputJson.buttenJson.PickTicketButton; import com.youchain.businessdata.repository.*; +import com.youchain.businessdata.returnJson.PutawayRet; import com.youchain.businessdata.returnJson.RPPickList; import com.youchain.businessdata.returnJson.RPTaskList; import com.youchain.businessdata.service.*; @@ -52,6 +57,8 @@ import java.text.SimpleDateFormat; import java.util.*; import javax.servlet.http.HttpServletResponse; +import static org.springframework.http.HttpStatus.BAD_REQUEST; + /** * @website https://eladmin.vip * @author JiangKun @@ -70,6 +77,8 @@ public class PickTicketController { private final TaskLogRepository taskLogRepository; private final XppRecordService xppRecordService; private final XppRecordRepository xppRecordRepository; + private final InventoryRepository inventoryRepository; + private final BillTypeRepository billTypeRepository; private final TaskService taskService; private final TaskLogService taskLogService; private final InventoryService inventoryService; @@ -190,16 +199,54 @@ public class PickTicketController { pickTicketService.pickingOperation(resources); return new ResponseEntity<>("操作成功",HttpStatus.OK); } + + @PostMapping("/xdckPick") + @Log("箱单出库创建") + @ApiOperation("箱单出库创建") + @PreAuthorize("@el.check('super:man')") + public ResponseEntity xdckPick(@RequestBody String stockCode){ + //检查该托盘是否还有库存 + List invs=inventoryRepository.queryInvStockCode(stockCode); + if(invs.size()<=0){ + return new ResponseEntity<>("没有对应的库存",HttpStatus.BAD_REQUEST); + } + BillType bt=billTypeRepository.findByName(BaseStatus.XDBH); + if(bt==null){ + throw new BadRequestException("维护箱单出库"+BaseStatus.XDBH+"类型"); + } + Area outArea=invs.get(0).getArea(); + PickTicket pickTicket=pickTicketService.storePick(bt,null,outArea,"大",stockCode); + double orderQty=0; + //生成出库明细 + for (Inventory inv:invs){ + PickDetail detail=pickDetailService.createPickDetail(pickTicket,inv.getItemKey().getItem(), stockCode,inv.getQuantity(),null); + orderQty+=detail.getOrderQty(); + //分配 + pickDetailService.allocate(detail.getId(), detail.getOrderQty(),stockCode); + } + pickTicket.setOrderQuantity(orderQty); + pickTicketService.update(pickTicket); + return new ResponseEntity<>("操作成功",HttpStatus.OK); + } + @PostMapping("/pickWhole") @Log("备货操作-整单拣货") @ApiOperation("备货操作-整单拣货") @PreAuthorize("@el.check('super:man')") @Transactional - public ResponseEntity pickWhole(@RequestBody Long ptId){ + public ResponseEntity pickWhole(@RequestBody PickTicketButton resources){ String bhr=SecurityUtils.getCurrentUsername(); - List ts=taskRepository.getNotPickTask(ptId); + String stockCode=resources.getStockCode(); + if(resources.getPickConfirmNo()==8){ + List pts=pickTicketRepository.queryByCusCode(stockCode); + if(pts.size()<=0){ + throw new BadRequestException("没找到需要下架的箱单"); + } + resources.setPickTicketId(pts.get(0).getId()); + } + List ts=taskRepository.getNotPickTask(resources.getPickTicketId()); if(ts.size()<=0){ - return new ResponseEntity<>("没有需要拣货的明细",HttpStatus.BAD_REQUEST); + throw new BadRequestException("没有需要拣货的明细"); } for(Task t:ts) { pickTicketService.pickForTask(t.getId(), t.getSrcStockCode(), t.getPlanQty()-t.getMoveQty(), null, bhr); @@ -207,6 +254,55 @@ public class PickTicketController { return new ResponseEntity<>("操作成功",HttpStatus.OK); } + @PostMapping("/pickWholeApp") + @Log("箱单出库APP") + @ApiOperation("箱单出库APP") + @PreAuthorize("@el.check('super:man')") + @Transactional + public ResponseEntity pickWholeApp(@RequestBody PutawayRequest request){ + String bhr=SecurityUtils.getCurrentUsername(); + String stockCode=request.getStockCode(); + List rets=new ArrayList<>(); + if(request.getCheckType()==4){ + List pts=pickTicketRepository.queryByCusCode(stockCode); + if(pts.size()<=0){ + throw new BadRequestException("没找到需要下架的箱单"); + } + Long pickId=pts.get(0).getId(); + List ts=taskRepository.getNotPickTask(pickId); + if(ts.size()<=0){ + throw new BadRequestException("没有需要拣货的明细"); + } + for(Task t:ts) { + PickDetail pd=t.getPickDetail(); + PutawayRet ret=new PutawayRet(); + ret.createPutawayRet(pickId,pd.getId(),pd.getItem().getCode(),pd.getItem().getName(),t.getPlanQty(),t.getItemKey().getPropC2(),pd.getPo()); + rets.add(ret); + } + return new ResponseEntity<>(rets,HttpStatus.OK); + + }else if(request.getCheckType()==6){ + List pts=pickTicketRepository.queryByCusCode(stockCode); + if(pts.size()<=0){ + throw new BadRequestException("没找到需要下架的箱单"); + } + Long pickId=pts.get(0).getId(); + List ts=taskRepository.getNotPickTask(pickId); + if(ts.size()<=0){ + throw new BadRequestException("没有需要拣货的明细"); + } + for(Task t:ts) { + PickDetail pd=t.getPickDetail(); + PutawayRet ret=new PutawayRet(); + ret.createPutawayRet(pickId,pd.getId(),pd.getItem().getCode(),pd.getItem().getName(),t.getPlanQty(),t.getItemKey().getPropC2(),pd.getPo()); + rets.add(ret); + pickTicketService.pickForTask(t.getId(), t.getSrcStockCode(), t.getPlanQty()-t.getMoveQty(), null, bhr); + } + } + + return new ResponseEntity<>("操作成功",HttpStatus.OK); + } + @PostMapping("/pickBatch") @Log("备货操作-批量拣货") @ApiOperation("备货操作-批量拣货") @@ -375,8 +471,8 @@ public class PickTicketController { Point point=pointService.findEntityById(pt.getShArea().getPointId()); Dept dept= UserUtils.getDept(); //线边接收不需要管理到批次,重新生成itemKey - ItemKey itemKey=itemKeyService.getItemKey(log.getItemKey().getItem(),null); - Inventory inventory=inventoryService.getInventory(itemKey,pt.getShArea(),point,pickDetail.getPoint(),dept,BizStatus.SL_ALL); + ItemKey itemKey=itemKeyService.getItemKey(log.getItemKey().getItem(),null,task.getItemKey().getPropC2()); + Inventory inventory=inventoryService.getInventory(itemKey,pt.getShArea(),point,pickDetail.getPoint(),dept,BizStatus.SL_ALL,null); double srcQty=inventory.getQuantity(); inventory.setQuantity(inventory.getQuantity()+log.getSlQty()); inventoryService.update(inventory); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/XppRecordController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/XppRecordController.java index 62b80aa..8af0ee2 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/XppRecordController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/XppRecordController.java @@ -368,7 +368,7 @@ public class XppRecordController { inventoryLogService.storeInventoryLog(BizStatus.ZZKW_TL, BizStatus.REDUCE, "制造库位投料", shArea, srcInv.getItemKey(), srcPoint, dstPoint, zzkw,srcQty1, occurQty, xppRecord.getEwm(), BizStatus.ZZKW_TL, xppRecord.getId(), srcInv.getId(), "制造库位投料"); //制造库位增加库存 - Inventory dstInv=inventoryService.getInventory(srcInv.getItemKey(),shArea,dstPoint,zzkw,srcInv.getDept(),BizStatus.ZZKW_TL); + Inventory dstInv=inventoryService.getInventory(srcInv.getItemKey(),shArea,dstPoint,zzkw,srcInv.getDept(),BizStatus.ZZKW_TL,null); double srcQty2=dstInv.getQuantity(); dstInv.addQty(occurQty); inventoryService.update(dstInv); @@ -465,7 +465,7 @@ public class XppRecordController { } } String pc1=DateUtil.dateYmd(new Date()); - ItemKey ik = itemKeyService.getItemKey(xppRecord.getItem(), DateUtil.dateYmdz()); + ItemKey ik = itemKeyService.getItemKey(xppRecord.getItem(), DateUtil.dateYmdz(),BaseStatus.KS); xppRecord.setItemKey(ik); if(type==1) { inventoryLogService.storeInventoryLog(BizStatus.RECEIVING, BizStatus.ADD, "现品票采集", area, ik, srcPoint, srcPoint, null, 0d, xppRecord.getNrs() + 0d, ewm, @@ -689,8 +689,8 @@ public class XppRecordController { //扣除库存 xppRecordService.xppShipOut(id,xppRecord.getInvPoint().getArea(),xppRecord.getInvPoint(),zzkw,BizStatus.YK_OUT,"现品票直接移库接收","现品票直接移库接收"); //增加库存,线边接收不需要管理到批次,重新生成itemKey - ItemKey itemKey=itemKeyService.getItemKey(ik.getItem(),null); - Inventory inventory=inventoryService.getInventory(itemKey,shArea,jskw,zzkw,dept,BizStatus.YK_JS); + ItemKey itemKey=itemKeyService.getItemKey(ik.getItem(),null,ik.getPropC2()); + Inventory inventory=inventoryService.getInventory(itemKey,shArea,jskw,zzkw,dept,BizStatus.YK_JS,null); double srcQty=inventory.getQuantity(); inventory.setQuantity(inventory.getQuantity()+xppRecord.getNrs()); inventoryService.update(inventory); @@ -739,7 +739,7 @@ public class XppRecordController { ItemKey ik = xppRecord.getItemKey(); Point srcPoint=xppRecord.getInvPoint(); Area srcArea=srcPoint.getArea(); - Inventory inventory=inventoryService.getInventory(ik,srcArea,srcPoint,zzkw,srcArea.getDept(),BizStatus.MOVE); + Inventory inventory=inventoryService.getInventory(ik,srcArea,srcPoint,zzkw,srcArea.getDept(),BizStatus.MOVE,null); if(inventory==null){ throw new BadRequestException(itemCode+"该库位无该批次库存"); } @@ -753,7 +753,7 @@ public class XppRecordController { inventoryLogService.storeInventoryLog(BizStatus.MOVE, BizStatus.REDUCE, "现品票移位", srcArea, ik, srcPoint, dstPoint, null, srcQty, xppRecord.getNrs()+0d,xppRecord.getEwm(), BizStatus.MOVE, xppRecord.getId(), inventory.getId(), "现品票移位"); //目标库位增加 - Inventory dstInv=inventoryService.getInventory(ik,dstArea,dstPoint,zzkw,dstArea.getDept(),BizStatus.MOVE); + Inventory dstInv=inventoryService.getInventory(ik,dstArea,dstPoint,zzkw,dstArea.getDept(),BizStatus.MOVE,null); inventoryLogService.storeInventoryLog(BizStatus.MOVE, BizStatus.ADD, "现品票移位", dstArea, ik, srcPoint, dstPoint, null, dstInv.getQuantity(), xppRecord.getNrs()+0d,xppRecord.getEwm(), BizStatus.MOVE, xppRecord.getId(), dstInv.getId(), "现品票移位"); dstInv.addQty(xppRecord.getNrs()); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint.java b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint.java index f482c74..c5d552a 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint.java @@ -14,6 +14,7 @@ import javax.persistence.Entity; */ public interface BomPrint { String getNs(); + String getCode(); String getXz(); String getPm(); String getSupplier(); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian.java b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian.java index edeaee3..88d1961 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian.java @@ -12,6 +12,8 @@ public class BomPrint_BiaoQian { private String ns; + private String code; + //"箱种" private String xz; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian2.java b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian2.java index 53206a6..de57c9f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian2.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/BomPrint_BiaoQian2.java @@ -12,6 +12,8 @@ public class BomPrint_BiaoQian2 { private String ns; + private String code; + //"箱种" private String xz; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/returnJson/PutawayRet.java b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/PutawayRet.java new file mode 100644 index 0000000..5868887 --- /dev/null +++ b/youchain-system/src/main/java/com/youchain/businessdata/returnJson/PutawayRet.java @@ -0,0 +1,29 @@ +package com.youchain.businessdata.returnJson; + +import com.youchain.businessdata.inputJson.PutawayRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class PutawayRet { + Long asnId; + Long detailId; + String itemCode;//品番 + String itemName;//品名 + double qty;//数量 + String bonded;//税别 + String po;//PO + + + public PutawayRet createPutawayRet(Long asnId,Long detailId,String itemCode,String itemName ,double qty,String bonded,String po){ + this.setBonded(bonded); + this.setPo(po); + this.setQty(qty); + this.setItemCode(itemCode); + this.setItemName(itemName); + this.setAsnId(asnId); + this.setDetailId(detailId); + return this; + } +} diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java index 5a7de33..71fa5d1 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnDetailService.java @@ -24,6 +24,8 @@ import com.youchain.businessdata.domain.XppRecord; import com.youchain.businessdata.service.dto.AsnDetailDto; import com.youchain.businessdata.service.dto.AsnDetailQueryCriteria; import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestBody; + import java.util.Map; import java.util.List; import java.io.IOException; @@ -128,4 +130,13 @@ public interface AsnDetailService { * @return */ List findAsnDetails(Long asnId,String type); + + /** + * 上架确认 + * @param asnDetailId + * @param pointId + */ + + void putAwayDetial(Long asnDetailId, Long pointId); + void putawayInv(@RequestBody Long asnDetailId, Long areaId, Long pointId, double recQty, String ewm); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnService.java index bbc9b18..878747f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/AsnService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/AsnService.java @@ -86,7 +86,7 @@ public interface AsnService { */ void download(List all, HttpServletResponse response) throws Exception, Exception; - List queryByAsnCodes(List asnCodes); + List queryByCusCodes(List cusCodes); - Map queryByasnCodesToMap(List asnCodes); + Map queryByCusCodesToMap(List cusCodes); } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java index b78b168..d6716c0 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/InventoryService.java @@ -101,7 +101,7 @@ public interface InventoryService { void downloadZz(List all, HttpServletResponse response) throws Exception, Exception; - List queryInventoryAllocate(long itemId,long areaId,Long zzkwId); + List queryInventoryAllocate(long itemId,long areaId,Long zzkwId,String stockCode); /** * 得到线边库存数量 @@ -114,7 +114,7 @@ public interface InventoryService { List queryInventory(Long areaId,Long pointId,Long itemKeyId); - Inventory getInventory(ItemKey itemKey, Area area, Point point,Point zzkw, Dept dept, String type); + Inventory getInventory(ItemKey itemKey, Area area, Point point,Point zzkw, Dept dept, String type,String stockCode); /** * 满足线边耗用库存 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/ItemKeyService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/ItemKeyService.java index 60ba3da..eef2d97 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/ItemKeyService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/ItemKeyService.java @@ -86,7 +86,7 @@ public interface ItemKeyService { */ void download(List all, HttpServletResponse response) throws Exception, Exception; - ItemKey getItemKey(Item item, String propC1); + ItemKey getItemKey(Item item, String propC1,String propC2); } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java index d3747b3..5b739e9 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickDetailService.java @@ -107,7 +107,7 @@ public interface PickDetailService { /** * 分配 */ - void allocate(long id,double quantity); + void allocate(long id,double quantity,String stockCode); /** * 取消分配 diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickTicketService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickTicketService.java index 8de73d6..5c35949 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/PickTicketService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickTicketService.java @@ -126,6 +126,7 @@ public interface PickTicketService { * 拣货操作 */ void pickingOperation(PickTicketButton pickTicketButton); + /** * 查询已经完成的拣货操作的数据 */ diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java index 210421d..e62cd5e 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/TaskService.java @@ -97,7 +97,7 @@ public interface TaskService { /** * * */ - Task storeTask(AsnDetail d, PickDetail p, Area area, ItemKey ik, Point srcPoint, Point dstPoint,double qty); + Task storeTask(AsnDetail d, PickDetail p, Area area, ItemKey ik, Point srcPoint, Point dstPoint,double qty,String stockCode); /** * 根据出库单明细查询未完成的Task集合 * @param id diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/AsnQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/AsnQueryCriteria.java index 250ca5e..3946bad 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/AsnQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/AsnQueryCriteria.java @@ -40,4 +40,7 @@ public class AsnQueryCriteria{ /** 模糊 */ @Query(type = Query.Type.EQUAL) private String status; + + @Query(joinName = "billType", propName="code",type = Query.Type.EQUAL) + private String billTypeCode; } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java index 9236a66..3648f5c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/InventoryQueryCriteria.java @@ -86,4 +86,8 @@ public class InventoryQueryCriteria{ @Query(joinName = "area",propName = "bexb",type = Query.Type.EQUAL) private Boolean bexb; + + /** 模糊 */ + @Query(type = Query.Type.INNER_LIKE) + private String stockCode; } \ No newline at end of file diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickTicketQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickTicketQueryCriteria.java index 8b10b17..2e28f16 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickTicketQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickTicketQueryCriteria.java @@ -34,6 +34,8 @@ public class PickTicketQueryCriteria{ @Query(type = Query.Type.INNER_LIKE) private String gcCode; + @Query(type = Query.Type.INNER_LIKE) + private String cusCode; /** 模糊 */ @Query(type = Query.Type.EQUAL,propName="code") private String code1; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java index 5a5e2c7..a0e2900 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnDetailServiceImpl.java @@ -15,22 +15,23 @@ */ package com.youchain.businessdata.service.impl; -import com.youchain.basicdata.domain.Item; -import com.youchain.basicdata.domain.Point; -import com.youchain.basicdata.domain.Stock; +import com.youchain.basicdata.domain.*; +import com.youchain.basicdata.repository.PointRepository; +import com.youchain.basicdata.service.AreaService; +import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.StockService; +import com.youchain.basicdata.service.dto.AreaDto; import com.youchain.businessdata.domain.*; +import com.youchain.businessdata.repository.InventoryRepository; import com.youchain.businessdata.repository.TaskRepository; -import com.youchain.businessdata.service.AsnService; -import com.youchain.businessdata.service.InventoryLogService; -import com.youchain.businessdata.service.InventoryService; +import com.youchain.businessdata.repository.XppRecordRepository; +import com.youchain.businessdata.service.*; import com.youchain.businessdata.service.dto.AsnDto; import com.youchain.businessdata.service.mapstruct.AsnMapper; import com.youchain.exception.BadRequestException; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; import com.youchain.businessdata.repository.AsnDetailRepository; -import com.youchain.businessdata.service.AsnDetailService; import com.youchain.businessdata.service.dto.AsnDetailDto; import com.youchain.businessdata.service.dto.AsnDetailQueryCriteria; import com.youchain.businessdata.service.mapstruct.AsnDetailMapper; @@ -38,14 +39,14 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import java.util.List; -import java.util.Map; +import org.springframework.web.bind.annotation.RequestBody; + +import java.sql.Timestamp; +import java.util.*; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.Query; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.LinkedHashMap; /** * @website https://eladmin.vip @@ -58,13 +59,23 @@ import java.util.LinkedHashMap; public class AsnDetailServiceImpl implements AsnDetailService { private final AsnDetailRepository asnDetailRepository; + private final PointRepository pointRepository; + private final XppRecordRepository xppRecordRepository; + private final InventoryRepository inventoryRepository; private final AsnDetailMapper asnDetailMapper; private final EntityManager entityMapper; private final TaskRepository taskRepository; + private final AsnService asnService; - private final AsnMapper asnMapper; + private final XppRecordService xppRecordService; private final InventoryService inventoryService; private final InventoryLogService inventoryLogService; + private final PointService pointService; + private final AreaService areaService; + private final ItemKeyService itemKeyService; + private final TaskService taskService; + + private final AsnMapper asnMapper; @Override public Map queryAll(AsnDetailQueryCriteria criteria, Pageable pageable){ @@ -139,7 +150,7 @@ public class AsnDetailServiceImpl implements AsnDetailService { ewm=xppRecord.getEwm(); srcPoint=xppRecord.getInvPoint(); } - Inventory inventory=inventoryService.getInventory(t.getItemKey(),xppRecord.getArea(),srcPoint,t.getAsnDetail().getPoint(),t.getArea().getDept(),BizStatus.RECEIVING_CANCEL); + Inventory inventory=inventoryService.getInventory(t.getItemKey(),xppRecord.getArea(),srcPoint,t.getAsnDetail().getPoint(),t.getArea().getDept(),BizStatus.RECEIVING_CANCEL,asn.getCusCode()); if(inventory==null){ throw new BadRequestException("找不到对应库存"); } @@ -215,4 +226,113 @@ public class AsnDetailServiceImpl implements AsnDetailService { List ds=query.getResultList(); return ds; } + + @Override + public void putAwayDetial(Long asnDetailId, Long pointId) { + AsnDetail ad=asnDetailRepository.getById(asnDetailId); + Point point=pointRepository.getById(pointId); + + } + @Override + public void putawayInv(@RequestBody Long asnDetailId, Long areaId, Long pointId, double recQty, String ewm) { + AsnDetail d = asnDetailRepository.getById(asnDetailId); + String propC2="课税"; + if(d.getPropC2()!=null){ + if(d.getPropC2().equals("EXP -")||d.getPropC2().equals("课税")){ + propC2="课税"; + }else if(d.getPropC2().equals("保税")){ + propC2="保税"; + }else{ + propC2="保税"; + } + } + Area area =null; + Point point = null; + if(pointId!=null){ + point = pointService.findEntityById(pointId); + if( point.getType().equals(BaseStatus.CH)){ + area=point.getArea(); + } + } + if(areaId!=null){ + area = areaService.findEntityById(areaId); + } + Point zzkw=null; + String pc1=null; + if(area.getBexb()){ + point= pointService.getPoint(area.getPointCode(), null, BaseStatus.HCKW, null);//取默认线边库位 + zzkw=d.getPoint(); + if(zzkw==null){ + //取默认制造库位 + zzkw= pointService.getPoint("ZZKW", null, null, null); + } + }else{ + pc1=DateUtil.dateYmdz(); + } + if(point==null){ + throw new BadRequestException("请选择入库库位"); + } + double unRecQty=d.getOrderQty() - d.getReceivedQty(); + if ( recQty<=unRecQty) { + //现品票确认将任务id回写到现品票表中 + XppRecord xppRecord = xppRecordRepository.findByCode(ewm); + ItemKey ik=null; + if(xppRecord!=null){ + if(!xppRecord.getStatus().equals(BizStatus.RECEIVED)&&!xppRecord.getStatus().equals(BizStatus.RETENTION_IN)){ + throw new BadRequestException(d.getItem().getCode()+"现品票状态不正确"); + } + ik=xppRecord.getItemKey(); + } + if(ik==null){ + ik = itemKeyService.getItemKey(d.getItem(), pc1,propC2); + } + String billCode=null; + String stockCode=null; + if(d.getAsn()!=null){ + Asn asn=d.getAsn(); + billCode=asn.getCode(); + asn.setReceivedQuantity(asn.getReceivedQuantity()+recQty); + if(asn.getReceivedQuantity().intValue()>=asn.getOrderQuantity().intValue()) { + asn.setStatus(BizStatus.PUTAWAY); + } + asnService.update(asn); + stockCode=asn.getCusCode(); + } + Task t = taskService.storeTask(d, null, area, ik, point, point,recQty,stockCode); + if(xppRecord!=null) { + xppRecord.setRkTask(t); + xppRecord.setInvPoint(point); + xppRecord.setStatus(BizStatus.PUTAWAY); + xppRecord.setItemKey(ik); + xppRecord.setSjr(SecurityUtils.getCurrentUsername()); + xppRecord.setSjDate(new Timestamp(new Date().getTime())); + ewm=xppRecord.getEwm(); + xppRecordService.update(xppRecord); + } + d.setReceivedQty(d.getReceivedQty()+recQty); + if(d.getReceivedQty().intValue()>=d.getOrderQty().intValue()){ + d.setStatus(BizStatus.PUTAWAY); + }else if(d.getReceivedQty().intValue()>0){ + d.setStatus(BizStatus.PUTAWAY); + } + this.update(d); + point.setStatus(BaseStatus.USED); + pointService.update(point); + Inventory inv = inventoryService.getInventory(ik, area, point, zzkw, d.getDept(), BizStatus.RECEIVING_UP,stockCode); + t.setInvId(inv.getId()); + taskService.update(t); + double srcQty = inv.getQuantity(); + inv.addQty(recQty); + + inventoryService.update(inv); + Point srcPoint = pointService.getPoint(null, null, BaseStatus.SHZC, null); + InventoryLog log=inventoryLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, billCode, area, ik, srcPoint, point, zzkw, srcQty, recQty,ewm, + BizStatus.ASN, d.getId(), inv.getId(), d.getRemark()); + log.setDstStockCode(inv.getStockCode()); + inventoryLogService.update(log); + } else { + throw new BadRequestException(d.getItem().getCode() + "收货数量不能大于未收数量"); + } + } + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnServiceImpl.java index bbfb23e..e0e4d15 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/AsnServiceImpl.java @@ -147,22 +147,22 @@ public class AsnServiceImpl implements AsnService { } @Override - public List queryByAsnCodes(List asnCodes) { + public List queryByCusCodes(List asnCodes) { if (CollectionUtils.isEmpty(asnCodes)) { return Collections.emptyList(); } //去重 asnCodes = asnCodes.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); - return asnRepository.queryByAsnCodes(asnCodes); + return asnRepository.queryByCusCodes(asnCodes); } @Override - public Map queryByasnCodesToMap(List asnCodes) { - List asnList = queryByAsnCodes(asnCodes); + public Map queryByCusCodesToMap(List cusCodes) { + List asnList = queryByCusCodes(cusCodes); //封装成map Map asnMap = Maps.newHashMap(); for (Asn asn : asnList) { - asnMap.put(asn.getCode(), asn); + asnMap.put(asn.getCusCode(), asn); } return asnMap; } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/CountMoveServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/CountMoveServiceImpl.java index 5f35a69..819756f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/CountMoveServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/CountMoveServiceImpl.java @@ -187,7 +187,7 @@ public class CountMoveServiceImpl implements CountMoveService { countMoveDetailRecord.setStatus(BizStatus.OPEN); countMoveDetailRecordService.create(countMoveDetailRecord); //查找目标库位是否有库存,有则数量累加,没有新建 - Inventory newInv=inventoryService.getInventory(itemKey,d.getDstPoint().getArea(),d.getDstPoint(),inv.getZzkw(),dept,BizStatus.COUNT_MOVE); + Inventory newInv=inventoryService.getInventory(itemKey,d.getDstPoint().getArea(),d.getDstPoint(),inv.getZzkw(),dept,BizStatus.COUNT_MOVE,null); newInv.setQuantity(newInv.getQuantity()+xpp.getNrs()); inventoryService.update(newInv); inv.setQuantity(inv.getQuantity()-xpp.getNrs()); @@ -294,7 +294,7 @@ public class CountMoveServiceImpl implements CountMoveService { countMoveDetailRecord.setStatus(BizStatus.OPEN); countMoveDetailRecordService.create(countMoveDetailRecord); //查找目标库位是否有库存,有则数量累加,没有新建 - Inventory newInv = inventoryService.getInventory(itemKey, d.getDstPoint().getArea(), d.getDstPoint(), inv.getZzkw(), dept, BizStatus.COUNT_MOVE); + Inventory newInv = inventoryService.getInventory(itemKey, d.getDstPoint().getArea(), d.getDstPoint(), inv.getZzkw(), dept, BizStatus.COUNT_MOVE,null); newInv.setQuantity(newInv.getQuantity() + xpp.getNrs()); inventoryService.update(newInv); inv.setQuantity(inv.getQuantity() - xpp.getNrs()); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java index a7b217d..ca81102 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/InventoryServiceImpl.java @@ -149,7 +149,7 @@ public class InventoryServiceImpl implements InventoryService { } @Override - public List queryInventoryAllocate(long itemId, long areaId,Long zzkwId) { + public List queryInventoryAllocate(long itemId, long areaId,Long zzkwId,String stockCode) { String hql = " from Inventory inv where 1=1 " + " and inv.itemKey.item.id=" + itemId + " " + " and inv.area.id=" + areaId + " " + @@ -160,6 +160,11 @@ public class InventoryServiceImpl implements InventoryService { }else{ hql+="and inv.point.type='"+BaseStatus.CH+"' "; } + if(stockCode!=null){ + hql+=" and inv.stockCode='"+stockCode+"'"; + }else{ + hql+=" and inv.stockCode is null"; + } hql+= " order by inv.itemKey.propC1 asc "; Query query = entityManager.createQuery(hql); List inventoryList = query.getResultList(); @@ -193,7 +198,7 @@ public class InventoryServiceImpl implements InventoryService { @Override @Transactional(rollbackFor = Exception.class) - public Inventory getInventory(ItemKey itemKey, Area area, Point point, Point zzkw, Dept dept, String type) { + public Inventory getInventory(ItemKey itemKey, Area area, Point point, Point zzkw, Dept dept, String type,String stockCode) { //生成Inventory String hql = " from Inventory inv where 1=1 "; if(type.equals(BizStatus.SL_ALL)||type.equals(BizStatus.ZZKW_TL)||type.equals(BizStatus.YK_JS)){ @@ -230,6 +235,11 @@ public class InventoryServiceImpl implements InventoryService { throw new BadRequestException(HttpStatus.NOT_FOUND, "线边仓制造库位必填"); } } + if(stockCode!=null){ + hql += " and inv.stockCode='" + stockCode + "' "; + } else { + hql += " and inv.stockCode is null"; + } Query query = entityManager.createQuery(hql); List inventoryList = query.getResultList(); @@ -246,7 +256,8 @@ public class InventoryServiceImpl implements InventoryService { if(zzkw==null){ zzkw=pointService.getPoint("ZZKW",null,null,null); } - inventory.setZzkw(zzkw); + inventory.setStockCode(stockCode); + inventory.setZzkw(zzkw); // inventory.setStock(stock); // inventory.setStockCode(stock.getCode()); inventory.setDept(dept); @@ -326,7 +337,7 @@ public class InventoryServiceImpl implements InventoryService { //原点位=之前记录的库位,目标库位=选择的库位 库区、品番、暂存库位、制造库位都取inv上的。 原数量取原纪录,目标数量取移出后的数量, 发生数量=输入的移位数量 //操作类型=库存调整,增加/减少=根据实际数量判断,大于原数量为增加,小于原数量为减少,其他的类似上面数据 //移位时,加入目标库位之前没有这个记录,则自动生成 - //库存唯一键:area,point,itemKey,zzkw + //库存唯一键:area,point,itemKey,zzkw,stockCode //位移所需要的数据 InventoryYW inventoryYW = inventoryButton.getInventoryYW(); //原数据 @@ -337,7 +348,7 @@ public class InventoryServiceImpl implements InventoryService { double rmNum = inventoryOld.getQuantity() - rmNumber; if (rmNum > 0) {//移除数量小于库存数量 //生成库存或生成记录 - Inventory inventory = this.getInventory(inventoryOld.getItemKey(), inventoryOld.getArea(), inventoryYW.getDstPoint(), inventoryOld.getZzkw(), inventoryOld.getDept(), BizStatus.MOVE); + Inventory inventory = this.getInventory(inventoryOld.getItemKey(), inventoryOld.getArea(), inventoryYW.getDstPoint(), inventoryOld.getZzkw(), inventoryOld.getDept(), BizStatus.MOVE,null); //生成移除的日志 invLogService.storeInventoryLog(BizStatus.MOVE, BizStatus.REDUCE, null, inventoryOld.getArea(), inventoryOld.getItemKey(), inventoryOld.getPoint(), inventoryYW.getDstPoint(), inventoryOld.getStock(), inventoryOld.getStock(), inventoryOld.getQuantity(), rmNumber, null,null, BizStatus.MOVE, inventoryOld.getId(), inventoryOld.getId(), inventoryOld.getDescription()); @@ -354,7 +365,7 @@ public class InventoryServiceImpl implements InventoryService { throw new BadRequestException(HttpStatus.NOT_FOUND, "移除数量大于库存数量"); } else {//移除数量等于库存数量 //生成库存或生成记录 - Inventory inventory = this.getInventory(inventoryOld.getItemKey(), inventoryOld.getArea(), inventoryYW.getDstPoint(), inventoryOld.getZzkw(), inventoryOld.getDept(), BizStatus.MOVE); + Inventory inventory = this.getInventory(inventoryOld.getItemKey(), inventoryOld.getArea(), inventoryYW.getDstPoint(), inventoryOld.getZzkw(), inventoryOld.getDept(), BizStatus.MOVE,null); //生成移除的日志 invLogService.storeInventoryLog(BizStatus.MOVE, BizStatus.REDUCE, null, inventoryOld.getArea(), inventoryOld.getItemKey(), inventoryOld.getPoint(), inventoryYW.getDstPoint(), inventoryOld.getStock(), inventoryOld.getStock(), inventoryOld.getQuantity(), rmNumber, null,null,BizStatus.MOVE, inventoryOld.getId(), inventoryOld.getId(), inventoryOld.getDescription()); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/ItemKeyServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/ItemKeyServiceImpl.java index 2bd44cb..711437a 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/ItemKeyServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/ItemKeyServiceImpl.java @@ -121,7 +121,7 @@ public class ItemKeyServiceImpl implements ItemKeyService { @Override @Transactional(rollbackFor = Exception.class) - public ItemKey getItemKey(Item item, String propC1) { + public ItemKey getItemKey(Item item, String propC1, String propC2) { //生成itemKey String hql = " from ItemKey ik where 1=1 "; if (item != null) { @@ -132,6 +132,11 @@ public class ItemKeyServiceImpl implements ItemKeyService { }else{ hql += " and ik.propC1 is null"; } + if (propC2 != null && propC2.length() > 0) { + hql += " and ik.propC2='" + propC2 + "' "; + }else{ + hql += " and ik.propC2 is null"; + } // if (propD1 != null) { // hql += " and DATE(ik.propD1) ='" + propD1 +"'"; // }else{ @@ -148,6 +153,7 @@ public class ItemKeyServiceImpl implements ItemKeyService { itemKey.setItem(item); itemKey.setDept(item.getDept()); itemKey.setPropC1(propC1); + itemKey.setPropC2(propC2); this.create(itemKey); } return itemKey; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java index 87a8571..59e9328 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickDetailServiceImpl.java @@ -192,7 +192,7 @@ public class PickDetailServiceImpl implements PickDetailService { @Override @Transactional(rollbackFor = Exception.class) - public synchronized void allocate(long id, double quantity){ + public synchronized void allocate(long id, double quantity,String stockCode){ PickDetailDto pickDetailDto = findById(id); PickDetail pd = toEntity(pickDetailDto);//Dto转实体 PickTicket pickTicket = pd.getPickTicket(); @@ -203,17 +203,14 @@ public class PickDetailServiceImpl implements PickDetailService { if(pd.getPoint()!=null&&pickTicket.getArea().getBexb()){ zzkwId=pd.getPoint().getId(); } - List invs = inventoryService.queryInventoryAllocate(item.getId(), pickTicket.getArea().getId(),zzkwId); + List invs = inventoryService.queryInventoryAllocate(item.getId(), pickTicket.getArea().getId(),zzkwId,stockCode); if (invs.size() > 0) { double allocateQty = 0; double unQty = quantity;//未分配数量 double srs=item.getExtendD3(); for (Inventory inv : invs) { Point startPoint = inv.getPoint();//原库位 - String areaCode="S仓"; - if(startPoint.getArea().equals("A仓")){ - areaCode="A仓"; - } + String areaCode=BaseStatus.DEFAULT_AREA; Point endPoint = pointService.getPoint(null, null, BaseStatus.BHZC, areaCode);//目标库位 if(endPoint==null){ throw new BadRequestException(HttpStatus.NOT_FOUND, "请维护备货暂存区"); @@ -251,7 +248,7 @@ public class PickDetailServiceImpl implements PickDetailService { //备货表上出单日期(审核写) pickTicket.setOutOrderDate(new Timestamp(new Date().getTime())); pickTicketRepository.save(pickTicket); - Task task = taskService.storeTask(null,pd,pickTicket.getArea(),inv.getItemKey(),startPoint,endPoint,allocateQty); + Task task = taskService.storeTask(null,pd,pickTicket.getArea(),inv.getItemKey(),startPoint,endPoint,allocateQty,inv.getStockCode()); //修改占用数,写入日志 inventoryLogService.storeInventoryLog(BizStatus.CHANGE_ZYS, BizStatus.ADD, pickTicket.getCode(), inv.getArea(), inv.getItemKey(), inv.getPoint(), inv.getPoint(), inv.getZzkw(), (inv.getQueuedQty()-allocateQty), allocateQty, null, BizStatus.PICK, @@ -280,7 +277,7 @@ public class PickDetailServiceImpl implements PickDetailService { //根据Taskz找到对应的库存 double quantity=task.getPlanQty(); // Inventory inv = inventoryRepository.findById(task.getInvId()).get(); - Inventory inv=inventoryService.getInventory(task.getItemKey(),pd.getPickTicket().getArea(),task.getSrcPoint(),task.getZzkw(),pd.getPickTicket().getDept(),BizStatus.CANCEL); + Inventory inv=inventoryService.getInventory(task.getItemKey(),pd.getPickTicket().getArea(),task.getSrcPoint(),task.getZzkw(),pd.getPickTicket().getDept(),BizStatus.CANCEL,task.getDstStockCode()); //修改占用数,写入日志 inventoryLogService.storeInventoryLog(BizStatus.CHANGE_ZYS, BizStatus.REDUCE, task.getBillCode(), inv.getArea(), inv.getItemKey(), inv.getPoint(), inv.getPoint(), inv.getZzkw(), inv.getQueuedQty(), quantity, null, BizStatus.PICK, diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickInstructionServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickInstructionServiceImpl.java index d714160..7c26827 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickInstructionServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickInstructionServiceImpl.java @@ -192,7 +192,7 @@ public class PickInstructionServiceImpl implements PickInstructionService { } } PickDetail pickDetailDto = pickDetailRepository.save(pickDetail); - pickDetailService.allocate(pickDetailDto.getId(), pickDetailDto.getOrderQty()); + pickDetailService.allocate(pickDetailDto.getId(), pickDetailDto.getOrderQty(),null); bcAllocatedQty = pickDetail.getAllocatedQty(); //回写 pickInstruction.setAllocatedQty(pickInstruction.getAllocatedQty()+bcAllocatedQty); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickTicketServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickTicketServiceImpl.java index c89fd79..466fe34 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickTicketServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickTicketServiceImpl.java @@ -181,19 +181,22 @@ public class PickTicketServiceImpl implements PickTicketService { @Override public PickTicket storePick(BillType bt, Area shArea, Area outArea, String bpType, String jhCode) { PickTicket p = new PickTicket(); - p.setCode(codeUtils.getCode_yyMMdd(bt.getPrefix()+'-', 3)); + p.setCode(codeUtils.getCode_yyMMdd(bt.getPrefix(), 3)); p.setBillType(bt); p.setShArea(shArea); p.setArea(outArea); p.setDept(UserUtils.getDept()); p.setOrderDate(new Timestamp(System.currentTimeMillis())); p.setBpType(bpType); + p.setDept(UserUtils.getDept()); p.setRelatedBill1(jhCode); + p.setCusCode(jhCode); p.setStatus(BizStatus.OPEN); pickTicketRepository.save(p); return p; } + @Override @Transactional(rollbackFor = Exception.class) public void pickingOperation(PickTicketButton pickTicketButton) { @@ -259,7 +262,7 @@ public class PickTicketServiceImpl implements PickTicketService { inventory.setQueuedQty(inventory.getQueuedQty() - taskDto.getPlanQty()); //存储拣货确认的库存数据 Task task = taskMapper.toEntity(taskDto); - Inventory inventory1 = inventoryService.getInventory(inventory.getItemKey(), inventory.getArea(), task.getDstPoint(), task.getZzkw(), inventory.getDept(), BizStatus.RECEIVING_UP); + Inventory inventory1 = inventoryService.getInventory(inventory.getItemKey(), inventory.getArea(), task.getDstPoint(), task.getZzkw(), inventory.getDept(), BizStatus.RECEIVING_UP,task.getDstStockCode()); invLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.ADD, task.getBillCode(), inventory1.getArea(), inventory1.getItemKey(), inventory1.getPoint(), inventory1.getPoint(), inventory1.getStock(), inventory1.getStock(), inventory1.getQuantity(), kcNum, null, null, BizStatus.PICK_DOWN, inventory1.getId(), inventory1.getId(), inventory1.getDescription()); inventory1.setQuantity(inventory1.getQuantity() + kcNum); @@ -277,7 +280,7 @@ public class PickTicketServiceImpl implements PickTicketService { taskLogService.createTaskLogData(taskDto, taskDto.getPlanQty()); //存储拣货确认的库存数据 Task task = taskMapper.toEntity(taskDto); - Inventory inventory1 = inventoryService.getInventory(inventory.getItemKey(), inventory.getArea(), task.getDstPoint(), task.getZzkw(), inventory.getDept(), BizStatus.RECEIVING_UP); + Inventory inventory1 = inventoryService.getInventory(inventory.getItemKey(), inventory.getArea(), task.getDstPoint(), task.getZzkw(), inventory.getDept(), BizStatus.RECEIVING_UP,task.getDstStockCode()); invLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.ADD, task.getBillCode(), inventory1.getArea(), inventory1.getItemKey(), inventory1.getPoint(), inventory1.getPoint(), inventory1.getStock(), inventory1.getStock(), inventory1.getQuantity(), kcNum, null, null, BizStatus.PICK_DOWN, inventory1.getId(), inventory1.getId(), inventory1.getDescription()); inventory1.setQuantity(inventory1.getQuantity() + kcNum); @@ -376,7 +379,7 @@ public class PickTicketServiceImpl implements PickTicketService { inventory1.setQueuedQty(inventory1.getQueuedQty() - taskDto1.getPlanQty()); //存储拣货确认的库存数据 Task task = taskMapper.toEntity(taskDto1); - Inventory inventory11 = inventoryService.getInventory(inventory1.getItemKey(), inventory1.getArea(), task.getDstPoint(), task.getZzkw(), inventory1.getDept(), BizStatus.RECEIVING_UP); + Inventory inventory11 = inventoryService.getInventory(inventory1.getItemKey(), inventory1.getArea(), task.getDstPoint(), task.getZzkw(), inventory1.getDept(), BizStatus.RECEIVING_UP,task.getDstStockCode()); invLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.ADD, null, inventory11.getArea(), inventory11.getItemKey(), inventory11.getPoint(), inventory11.getPoint(), inventory11.getStock(), inventory11.getStock(), inventory11.getQuantity(), kcNum1, null, null, BizStatus.PICK_DOWN, inventory11.getId(), inventory11.getId(), inventory11.getDescription()); inventory11.setQuantity(inventory11.getQuantity() + kcNum1); @@ -394,7 +397,7 @@ public class PickTicketServiceImpl implements PickTicketService { taskLogService.createTaskLogData(taskDto1, taskDto1.getPlanQty()); //存储拣货确认的库存数据 Task task = taskMapper.toEntity(taskDto1); - Inventory inventory11 = inventoryService.getInventory(inventory1.getItemKey(), inventory1.getArea(), task.getDstPoint(), task.getZzkw(), inventory1.getDept(), BizStatus.RECEIVING_UP); + Inventory inventory11 = inventoryService.getInventory(inventory1.getItemKey(), inventory1.getArea(), task.getDstPoint(), task.getZzkw(), inventory1.getDept(), BizStatus.RECEIVING_UP,task.getDstStockCode()); invLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.ADD, null, inventory11.getArea(), inventory11.getItemKey(), inventory11.getPoint(), inventory11.getPoint(), inventory11.getStock(), inventory11.getStock(), inventory11.getQuantity(), kcNum1, null, null, BizStatus.PICK_DOWN, inventory11.getId(), inventory11.getId(), inventory11.getDescription()); inventory11.setQuantity(inventory11.getQuantity() + kcNum1); @@ -488,7 +491,7 @@ public class PickTicketServiceImpl implements PickTicketService { PickTicket pt = pd.getPickTicket(); Point zzkw=pd.getPoint(); //大部品的库存不能进去 - Inventory srcInv = inventoryService.getInventory(task.getItemKey(),pt.getArea(),task.getSrcPoint(),zzkw,pt.getArea().getDept(),BizStatus.PICK_DOWN); + Inventory srcInv = inventoryService.getInventory(task.getItemKey(),pt.getArea(),task.getSrcPoint(),zzkw,pt.getArea().getDept(),BizStatus.PICK_DOWN,task.getDstStockCode()); if (srcInv==null) { throw new BadRequestException(HttpStatus.NOT_FOUND, task.getItem().getCode() + "未发现库存数据"); } @@ -539,12 +542,12 @@ public class PickTicketServiceImpl implements PickTicketService { invLogService.update(invLog); //生成备货库存,备货库存也不需要线边 - Inventory dstInv = inventoryService.getInventory(srcInv.getItemKey(), srcInv.getArea(), task.getDstPoint(), zzkw, srcInv.getDept(), BizStatus.PICK_DOWN); + /** Inventory dstInv = inventoryService.getInventory(srcInv.getItemKey(), srcInv.getArea(), task.getDstPoint(), zzkw, srcInv.getDept(), BizStatus.PICK_DOWN,task.getDstStockCode()); invLogService.storeInventoryLog(BizStatus.PICK_DOWN, BizStatus.ADD, pt.getCode(), dstInv.getArea(), dstInv.getItemKey(), dstInv.getPoint(), dstInv.getPoint(), zzkw, dstInv.getQuantity(), kcNum, barCode, BizStatus.PICK_DOWN, taskLog.getId(), dstInv.getId(), pd.getRemark()); dstInv.setQuantity(dstInv.getQuantity() + kcNum); - inventoryService.update(dstInv); + inventoryService.update(dstInv); **/ pd.setPickedQty(pd.getPickedQty() + pickQty); pickDetailService.update(pd); //拣货数量 @@ -731,7 +734,7 @@ public class PickTicketServiceImpl implements PickTicketService { PickDetail pd = task.getPickDetail(); Point zzkw = pd.getPoint();//pointService.findByCode("ZZKW",null,null,null,null); //源库存增加,目标减少 - Inventory srcInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getSrcPoint(), zzkw, taskLog.getDept(), BizStatus.PICK_CANCEL); + Inventory srcInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getSrcPoint(), zzkw, taskLog.getDept(), BizStatus.PICK_CANCEL,task.getDstStockCode()); //添加物料 srcInv.setQuantity(srcInv.getQuantity() + cancelNum); //修改占用数,写入日志 @@ -754,7 +757,7 @@ public class PickTicketServiceImpl implements PickTicketService { pd.setPickedQty(pd.getPickedQty() - cancelNum); pickDetailService.update(pd); //扣库存 - Inventory dstInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getDstPoint(), zzkw, taskLog.getDept(), BizStatus.PICK_CANCEL); + Inventory dstInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getDstPoint(), zzkw, taskLog.getDept(), BizStatus.PICK_CANCEL,null); if (dstInv==null) { throw new BadRequestException(HttpStatus.NOT_FOUND, taskLog.getItem().getCode() + "未发现库存数据"); } @@ -791,7 +794,7 @@ public class PickTicketServiceImpl implements PickTicketService { PickDetail pd = task.getPickDetail(); Point zzkw = pd.getPoint(); //源库存增加 - Inventory srcInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getDstPoint(), zzkw, taskLog.getDept(), BizStatus.SHIP_CANCEL); + Inventory srcInv = inventoryService.getInventory(taskLog.getItemKey(), area, taskLog.getDstPoint(), zzkw, taskLog.getDept(), BizStatus.SHIP_CANCEL,null); srcInv.setQuantity(srcInv.getQuantity() + cancelNum); srcInv.setQueuedQty(srcInv.getQueuedQty() + cancelNum); inventoryService.update(srcInv); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/SparepartsServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/SparepartsServiceImpl.java index ad44cd1..964adfa 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/SparepartsServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/SparepartsServiceImpl.java @@ -186,7 +186,7 @@ public class SparepartsServiceImpl implements SparepartsService { if(point==null){ throw new BadRequestException(ba.getRArea().getCode()+"库区无对应待投料库位"); } - ItemKey itemKey=itemKeyService.getItemKey(ba.getItem(),null); + ItemKey itemKey=itemKeyService.getItemKey(ba.getItem(),null,ba.getBonded()); Inventory inventory = new Inventory(); inventory.setItemKey(itemKey); inventory.setPoint(point); diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index 08edca4..bec5dd5 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -60,11 +60,11 @@ import javax.servlet.http.HttpServletResponse; @Slf4j public class TaskServiceImpl implements TaskService { + private final InventoryLogService inventoryLogService; private final TaskRepository taskRepository; private final TaskMapper taskMapper; private final InventoryRepository inventoryRepository; private final PickDetailRepository pickDetailRepository; - private final InventoryLogService inventoryLogService; private final EntityManager entityMapper; private final StockRepository stockRepository; @Override @@ -159,7 +159,7 @@ public class TaskServiceImpl implements TaskService { @Override @Transactional(rollbackFor = Exception.class) - public Task storeTask(AsnDetail d, PickDetail p, Area area, ItemKey ik, Point srcPoint, Point dstPoint,double qty) { + public Task storeTask(AsnDetail d, PickDetail p, Area area, ItemKey ik, Point srcPoint, Point dstPoint,double qty,String stockCode) { Task t = new Task(); t.setAsnDetail(d); t.setPickDetail(p); @@ -189,6 +189,7 @@ public class TaskServiceImpl implements TaskService { t.setDstPoint(dstPoint); t.setDstPointCode(dstPoint.getCode()); } + t.setDstStockCode(stockCode); this.create(t); return t; } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/XppRecordServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/XppRecordServiceImpl.java index a9bcb8c..9fdebc1 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/XppRecordServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/XppRecordServiceImpl.java @@ -71,15 +71,16 @@ public class XppRecordServiceImpl implements XppRecordService { private final XppRecordMapper xppRecordMapper; private final ItemRepository itemRepository; private final AsnDetailRepository asnDetailRepository; - private final PointRepository pointRepository; - private final RedisUtils redisUtils; - private final InventoryLogService inventoryLogService; - private final EntityManager entityManager; - private final BomAccountRepository bomAccountRepository; private final AreaRepository areaRepository; private final JobRepository jobRepository; + + private final InventoryLogService inventoryLogService; private final InventoryService inventoryService; + private final EntityManager entityManager; + private final RedisUtils redisUtils; + + @Override public Map queryAll(XppRecordQueryCriteria criteria, Pageable pageable) { int pageNum=pageable.getPageNumber();//当前页 @@ -508,7 +509,7 @@ public class XppRecordServiceImpl implements XppRecordService { } this.update(xppRecord); String itemCode=xppRecord.getItem().getCode(); - Inventory inventory=inventoryService.getInventory(ik,area,srcPoint,zzkw,area.getDept(),type); + Inventory inventory=inventoryService.getInventory(ik,area,srcPoint,zzkw,area.getDept(),type,null); if(inventory==null){ throw new BadRequestException(itemCode+"该库位无该批次库存"); } diff --git a/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java b/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java index 96d021f..b8f1422 100644 --- a/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java +++ b/youchain-system/src/main/java/com/youchain/utils/BaseStatus.java @@ -61,7 +61,7 @@ public interface BaseStatus { /** * 默认入库库区 */ - public static String DEFAULT_AREA = "久荣协同S仓库"; + public static String DEFAULT_AREA = "CGK"; public static String AREA_S = "S仓"; @@ -86,10 +86,30 @@ public interface BaseStatus { * 单据类型-单点 */ public static String BT_DD = "单点"; + /** + * 单据类型-箱单入库 + */ + public static String XDRK = "箱单入库"; + + /** + * 单据类型-箱单备货 + */ + public static String XDBH = "箱单备货"; /** * 单据类型-正常入库 */ - public static String RK = "正常入库"; + public static String XBRK = "线边入库"; + + + /** + * 税别-课税 + */ + public static String KS = "课税"; + + /** + * 税别-保税 + */ + public static String BS = "保税"; } diff --git a/youchain-system/src/main/resources/config/application-prod.yml b/youchain-system/src/main/resources/config/application-prod.yml index 6232ff9..355d915 100644 --- a/youchain-system/src/main/resources/config/application-prod.yml +++ b/youchain-system/src/main/resources/config/application-prod.yml @@ -4,7 +4,7 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:53306}/${DB_NAME:kams4_prod}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false + url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:53306}/${DB_NAME:wxjbt}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false username: ${DB_USER:root} password: ${DB_PWD:Youchain@56} # 初始连接数 diff --git a/youchain-system/src/main/resources/config/application.yml b/youchain-system/src/main/resources/config/application.yml index dd8b83e..050ffaf 100644 --- a/youchain-system/src/main/resources/config/application.yml +++ b/youchain-system/src/main/resources/config/application.yml @@ -7,8 +7,8 @@ spring: freemarker: check-template-location: false profiles: - #active: prod - active: dev + active: prod + #active: dev jackson: time-zone: GMT+8 data: