diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java index 29b418e..74aa843 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvService.java @@ -1,7 +1,13 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import netscape.javascript.JSObject; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.st.inbill.service.dto.OutChargePageParam; +import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; import org.springframework.data.domain.Pageable; import java.util.Map; @@ -140,4 +146,12 @@ public interface IStIvtIostorinvService extends IService { * } */ void confirm(Map whereJson); + + /** + * 冲销出库分页查询 + * @param paramMap + * @param page + * @return + */ + IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java index 4e0b146..4c1567b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/IStIvtIostorinvdisService.java @@ -78,5 +78,12 @@ public interface IStIvtIostorinvdisService extends IService { * @return */ List getOutBillData(OutBillPageParam paramMap); + + /** + * 根据单据id获取分配数据 + * @param iosId 出入库单id + * @return + */ + List getAllocationByIosId(String iosId); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinv.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinv.java index 4450f52..794e7a0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinv.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinv.java @@ -2,9 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.*; import java.io.Serializable; import java.math.BigDecimal; @@ -12,6 +10,7 @@ import java.math.BigDecimal; /** *

* 出入库单主表 + * 追加了NoArgsConstructor与AllArgsConstructor *

* * @author generator @@ -19,9 +18,10 @@ import java.math.BigDecimal; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_iostorinv") - public class StIvtIostorinv implements Serializable { private static final long serialVersionUID = 1L; @@ -75,7 +75,7 @@ public class StIvtIostorinv implements Serializable { /** * 来源方标识 */ - private Long source_id; + private String source_id; /** * 来源方名称 @@ -120,7 +120,7 @@ public class StIvtIostorinv implements Serializable { /** * 制单人 */ - private Long input_optid; + private String input_optid; /** * 制单人姓名 @@ -135,7 +135,7 @@ public class StIvtIostorinv implements Serializable { /** * 修改人 */ - private Long update_optid; + private String update_optid; /** * 修改人姓名 @@ -150,7 +150,7 @@ public class StIvtIostorinv implements Serializable { /** * 分配人 */ - private Long dis_optid; + private String dis_optid; /** * 分配人姓名 @@ -165,7 +165,7 @@ public class StIvtIostorinv implements Serializable { /** * 确认人 */ - private Long confirm_optid; + private String confirm_optid; /** * 确认人姓名 @@ -200,7 +200,7 @@ public class StIvtIostorinv implements Serializable { /** * 回传人 */ - private Long upload_optid; + private String upload_optid; /** * 回传时间 @@ -215,7 +215,7 @@ public class StIvtIostorinv implements Serializable { /** * 冲销人 */ - private Long writeoff_optid; + private String writeoff_optid; /** * 冲销时间 @@ -305,7 +305,7 @@ public class StIvtIostorinv implements Serializable { /** * 移入仓库标识 */ - private Long out_stor_id; + private String out_stor_id; /** * 回传MES diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java index a7d8b26..c1dbd2c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdis.java @@ -50,7 +50,7 @@ public class StIvtIostorinvdis implements Serializable { /** * 库区标识 */ - private Long sect_id; + private String sect_id; /** * 库区编码 @@ -65,7 +65,7 @@ public class StIvtIostorinvdis implements Serializable { /** * 仓位标识 */ - private Long struct_id; + private String struct_id; /** * 仓位编码 @@ -100,12 +100,12 @@ public class StIvtIostorinvdis implements Serializable { /** * 任务标识 */ - private Long task_id; + private String task_id; /** * 存储载具标识 */ - private Long storagevehicle_id; + private String storagevehicle_id; /** * 存储载具编码 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdtl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdtl.java index ac0a9a6..13d0618 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdtl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/StIvtIostorinvdtl.java @@ -2,9 +2,7 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; +import lombok.*; import java.io.Serializable; import java.math.BigDecimal; @@ -21,6 +19,8 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_iostorinvdtl") @Builder +@AllArgsConstructor +@NoArgsConstructor public class StIvtIostorinvdtl implements Serializable { private static final long serialVersionUID = 1L; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java index d669545..1d85932 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.java @@ -3,11 +3,13 @@ package org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import lombok.extern.slf4j.Slf4j; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dto.IostorInvQuery; +import org.nl.wms.st.inbill.service.dto.OutChargePageParam; import org.nl.wms.st.inbill.service.dto.RawAssistIStorDto; +import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; import org.springframework.data.domain.Pageable; import java.util.List; @@ -51,4 +53,12 @@ public interface StIvtIostorinvMapper extends BaseMapper { */ List getIosInv(@Param("params") RawAssistIStorDto rawAssistIStorDto); + + /** + * 出库冲销分页查询 + * @param pages + * @param paramMap + * @return + */ + IPage outWriteOffPageDatas(IPage pages, OutChargePageParam paramMap); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml index 691d8d5..e9b255e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml @@ -241,5 +241,134 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 3553bec..814427e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -859,7 +859,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(Long.parseLong(task_group_id)); + row.setTask_id(task_group_id); }); iStIvtIostorinvdisService.updateBatchById(disDaoList); @@ -1758,7 +1758,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(Long.parseLong(task_id)); + row.setTask_id(task_id); row.setPoint_id(jsonPoint.getLongValue("point_id")); }); iStIvtIostorinvdisService.updateBatchById(disDaoList); @@ -1847,7 +1847,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(Long.parseLong(task_group_id)); + row.setTask_id(task_group_id); }); iStIvtIostorinvdisService.updateBatchById(disDaoList); @@ -1904,7 +1904,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl { row.setWork_status(IOSEnum.WORK_STATUS.code("生成")); - row.setTask_id(Long.parseLong(task_id)); + row.setTask_id(task_id); row.setPoint_id(jsonPoint.getLongValue("point_id")); }); iStIvtIostorinvdisService.updateBatchById(disDaoList); @@ -1979,7 +1979,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPageNumber() + 1, pageQuery.getPageSize()); @@ -389,7 +400,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) { + List userStores = bsrealstorattrService.getStoreForUser(SecurityUtils.getCurrentUserId()); + paramMap.setIn_stor_id(userStores); + IPage pages = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPage() + 1, page.getSize()); + return stIvtIostorinvMapper.outWriteOffPageDatas(pages, paramMap); + } + /** * 组织主表数据 * @@ -720,10 +739,10 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl) whereJson.get("tableData")).size())); mstDao.setRemark(whereJson.get("remark").toString()); mstDao.setTotal_qty(BigDecimal.valueOf(Double.parseDouble(whereJson.get("total_qty").toString()))); - mstDao.setUpdate_optid(Long.parseLong(SecurityUtils.getCurrentUserId())); + mstDao.setUpdate_optid(SecurityUtils.getCurrentUserId()); mstDao.setUpdate_optname(SecurityUtils.getCurrentNickName()); mstDao.setUpdate_time(DateUtil.now()); } @@ -791,7 +810,7 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl getAllocationByIosId(String iosId) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(StIvtIostorinvdis::getIostorinv_id, iosId); + return list(lam); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java index 9225473..2bad2a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java @@ -301,16 +301,16 @@ public class OutBussManageServiceImpl implements OutBussManageService { .iostorinv_id(dtlDao.getIostorinv_id()) .iostorinvdtl_id(dtlDao.getIostorinvdtl_id()) .seq_no(BigDecimal.valueOf(i + 1)) - .sect_id(jsonIvt.getLongValue("sect_id")) + .sect_id(jsonIvt.getString("sect_id")) .sect_code(jsonIvt.getString("sect_code")) .sect_name(jsonIvt.getString("sect_name")) - .struct_id(jsonIvt.getLongValue("struct_id")) + .struct_id(jsonIvt.getString("struct_id")) .struct_code(jsonIvt.getString("struct_code")) .struct_name(jsonIvt.getString("struct_name")) .material_id(jsonIvt.getLongValue("material_id")) .pcsn(jsonIvt.getString("pcsn")) .quality_scode(jsonIvt.getString("quality_scode")) - .storagevehicle_id(jsonIvt.getLongValue("storagevehicle_id")) + .storagevehicle_id(jsonIvt.getString("storagevehicle_id")) .storagevehicle_code(jsonIvt.getString("storagevehicle_code")) .is_issued(IOSEnum.IS_NOTANDYES.code("否")) .qty_unit_id(jsonUnit.getLongValue("measure_unit_id")) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java index 4b7ddda..48216da 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/dao/StIvtStructivt.java @@ -82,7 +82,8 @@ public class StIvtStructivt { /** * 计量单位标识 */ - private String qtyUnit_id; +// private String qtyUnit_id; + private String qty_unit_id; /** * 入库时间 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java index 027bdb1..1c8daf3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/StIvtStructivtService.java @@ -14,6 +14,7 @@ import org.nl.wms.stat.service.vo.PastStructPageVo; import java.util.List; /** + * 仓位库存表 * @Author: lyd * @Date: 2025/6/5 */ @@ -54,4 +55,12 @@ public interface StIvtStructivtService extends IService { * @return */ List getPastStructDatas(PastStructPageParam paramMap); + + /** + * 根据批次获取单个库存信息 + * @param pcsn 批次 + * @param throwEx 查询超出一个是否抛出异常 + * @return + */ + StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java index 34f46cb..21888dd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/st/service/impl/StIvtStructivtServiceImpl.java @@ -64,4 +64,11 @@ public class StIvtStructivtServiceImpl extends ServiceImpl getPastStructDatas(PastStructPageParam paramMap) { return stIvtStructivtMapper.getPastStructDatas(paramMap); } + + @Override + public StIvtStructivt getOneByPcsn(String pcsn, boolean throwEx) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(StIvtStructivt::getPcsn, pcsn); + return getOne(lam, throwEx); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java index ba5ce9e..d763ef6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/rest/OutChargeController.java @@ -3,8 +3,12 @@ package org.nl.wms.st.inbill.rest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.modules.logging.annotation.Log; import org.nl.wms.st.inbill.service.OutChargeService; +import org.nl.wms.st.inbill.service.dto.OutChargePageParam; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -25,20 +29,32 @@ public class OutChargeController { private final OutChargeService outChargeService; - @GetMapping - @Log("出库单查询") +// @GetMapping +// @Log("出库单查询") +// +// //@PreAuthorize("@el.check('regionio:list')") +// public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { +// return new ResponseEntity<>(outChargeService.queryAll(whereJson, page), HttpStatus.OK); +// } - //@PreAuthorize("@el.check('regionio:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { - return new ResponseEntity<>(outChargeService.queryAll(whereJson, page), HttpStatus.OK); + @GetMapping + @Log("出库冲销查询") + public ResponseEntity query(OutChargePageParam paramMap, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(outChargeService.outWriteOffPageDatas(paramMap, page)), HttpStatus.OK); } - @PostMapping("/charge") - @Log("冲销") +// @PostMapping("/charge") +// @Log("冲销") +// //@PreAuthorize("@el.check('regionio:add')") +// public ResponseEntity charge(@RequestBody Map whereJson) { +// outChargeService.charge(whereJson); +// return new ResponseEntity<>(HttpStatus.CREATED); +// } - //@PreAuthorize("@el.check('regionio:add')") - public ResponseEntity charge(@RequestBody Map whereJson) { - outChargeService.charge(whereJson); + @PostMapping("/charge") + @Log("出库冲销 - 做入库") + public ResponseEntity outWriteOffCharge(@RequestBody StIvtIostorinv paramMap) { + outChargeService.outWriteOffCharge(paramMap); return new ResponseEntity<>(HttpStatus.CREATED); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java index fa9e186..7322cee 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/OutChargeService.java @@ -1,5 +1,12 @@ package org.nl.wms.st.inbill.service; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import netscape.javascript.JSObject; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.st.inbill.service.dto.OutChargePageParam; +import org.nl.wms.st.inbill.service.vo.OutWriteOffVo; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.RequestBody; @@ -30,4 +37,17 @@ public interface OutChargeService { */ void charge(@RequestBody Map whereJson); + /** + * 冲销出库的出库单查询 + * @param paramMap + * @param page + * @return + */ + IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page); + + /** + * 冲销出库 + * @param outbound 出库单 + */ + void outWriteOffCharge(StIvtIostorinv outbound); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java new file mode 100644 index 0000000..3f4f794 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/dto/OutChargePageParam.java @@ -0,0 +1,24 @@ +package org.nl.wms.st.inbill.service.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 出库冲销分页参数 + * @Author: lyd + * @Date: 2025/6/10 + */ +@Data +public class OutChargePageParam implements Serializable { + private String bill_code; + private String stor_id; + private List in_stor_id; + private String begin_time; + private String end_time; + private String create_mode; + private String bill_type; + private String pcsn; + private String sap_pcsn; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java index aa01288..c70689e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/OutChargeServiceImpl.java @@ -8,34 +8,68 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; +import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; +import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdis; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl; +import org.nl.b_lms.storage_manage.st.dao.StIvtStructivt; +import org.nl.b_lms.storage_manage.st.service.StIvtStructivtService; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; -import org.nl.common.utils.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; import org.nl.wms.st.inbill.service.OutChargeService; +import org.nl.wms.st.inbill.service.dto.OutChargePageParam; +import org.nl.wms.stat.service.enums.InBillTypeEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; +import static org.nl.common.utils.IdUtil.getStringId; + /** * @author Liuxy * @description 服务实现 * @date 2022-08-11 **/ @Service -@RequiredArgsConstructor @Slf4j public class OutChargeServiceImpl implements OutChargeService { + /** 单据表 */ + @Autowired + private IStIvtIostorinvService iStIvtIostorinvService; + /** 出入库单分配表 */ + @Autowired + private IStIvtIostorinvdisService iostorinvdisService; + /** 出入库单明细表 */ + @Autowired + private IStIvtIostorinvdtlService iostorinvdtlService; + /** 仓位库存表 */ + @Autowired + private StIvtStructivtService structivtService; + @Autowired + private IpdmBiSubpackagerelationService subpackagerelationService; + @Override public Map queryAll(Map whereJson, Pageable page) { String bill_code = MapUtil.getStr(whereJson, "bill_code"); @@ -160,7 +194,10 @@ public class OutChargeServiceImpl implements OutChargeService { whereJson.put("writeoff_time", ""); whereJson.put("upload_mes", ""); whereJson.put("upload_sap", ""); - mst_wql.insert(whereJson); +// mst_wql.insert(whereJson); +// if (true) { +// throw new BadRequestException("测试中..."); +// } ArrayList ivtList = new ArrayList<>(); // 存在库存的集合 for (int i = 0; i < dis_rows.size(); i++) { @@ -191,7 +228,7 @@ public class OutChargeServiceImpl implements OutChargeService { dis_row.put("assign_qty", dis_row.getString("plan_qty")); dis_row.put("unassign_qty", "0"); //插入手工入库明细表 - dtl_wql.insert(dis_row); +// dtl_wql.insert(dis_row); dis_row.put("iostorinvdis_id", IdUtil.getSnowflake(1, 1).nextId()); dis_row.put("seq_no", 1); @@ -206,7 +243,7 @@ public class OutChargeServiceImpl implements OutChargeService { dis_row.put("point_id", ""); dis_row.put("task_id", ""); //插入分配表 - dis_wql.insert(dis_row); +// dis_wql.insert(dis_row); //将包装关系中对应的记录状态改为包装 HashMap map = new HashMap<>(); @@ -226,4 +263,115 @@ public class OutChargeServiceImpl implements OutChargeService { } + @Override + public IPage outWriteOffPageDatas(OutChargePageParam paramMap, PageQuery page) { + return iStIvtIostorinvService.outWriteOffPageDatas(paramMap, page); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void outWriteOffCharge(StIvtIostorinv outbound) { + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + String oldOutOrderId = outbound.getIostorinv_id(); + // 1、校验主表状态为完成 + StIvtIostorinv oldOutOrder = iStIvtIostorinvService.getById(oldOutOrderId); + if (!"99".equals(oldOutOrder.getBill_status())) { + throw new BadRequestException("出库单[" + outbound.getBill_code() + "]的状态必须为完成!"); + } + // 2、更新销售出库为已冲销 + // 需要冲销的出库单Id + LambdaUpdateWrapper iosInvLam = new LambdaUpdateWrapper<>(); + iosInvLam.set(StIvtIostorinv::getIs_writeoff, SlitterConstant.SLITTER_YES) + .set(StIvtIostorinv::getUpdate_time, now) + .eq(StIvtIostorinv::getIostorinv_id, oldOutOrderId); + iStIvtIostorinvService.update(iosInvLam); + // 3、生成手工入库单 + // 获取出库单对应的分配数据 + List outboundDisList = iostorinvdisService.getAllocationByIosId(oldOutOrderId); + String manualInStorageOrderId = getStringId(); + String manualInBillCode = CodeUtil.getNewCode("IO_CODE"); + outbound.setIostorinv_id(manualInStorageOrderId); + outbound.setBill_code(manualInBillCode); + outbound.setIo_type("0"); + outbound.setBill_type(InBillTypeEnum.MANUAL_IN.getCode()); + outbound.setBuss_type("0009"); + outbound.setBill_status("30"); + outbound.setInput_optid(currentUserId); + outbound.setInput_optname(nickName); + outbound.setInput_time(now); + outbound.setUpdate_optid(currentUserId); + outbound.setUpdate_optname(nickName); + outbound.setUpdate_time(now); + outbound.setDis_optid(currentUserId); + outbound.setDis_optname(nickName); + outbound.setDis_time(now); + outbound.setConfirm_optid("0"); + outbound.setConfirm_optname(""); + outbound.setConfirm_time(""); + outbound.setIs_upload(""); + outbound.setUpload_optid("0"); + outbound.setUpload_time(""); + outbound.setIs_writeoff("0"); + outbound.setWriteoff_optid("0"); + outbound.setWriteoff_time(""); + outbound.setUpload_mes(""); + outbound.setUpload_sap(""); + iStIvtIostorinvService.save(outbound); + // 4、插入明细表、分配表 + // 存在库存的集合 + ArrayList ivtList = new ArrayList<>(); + List needSaveDisList = new ArrayList<>(); + List needSaveDtlList = new ArrayList<>(); + for (int i = 0; i < outboundDisList.size(); i++) { + //插入明细表 + String newDtlId = getStringId(); + StIvtIostorinvdis disRow = outboundDisList.get(i); + // 校验是否存在库存 + StIvtStructivt structivt = structivtService.getOneByPcsn(disRow.getPcsn(), false); + if (ObjectUtil.isNotEmpty(structivt)) { + ivtList.add(structivt.getPcsn()); + } + // 根据dis获取dtl(一个dis对应一个dtl【实际仓储中可能多对一】) + StIvtIostorinvdtl outDtl = iostorinvdtlService.getById(disRow.getIostorinvdtl_id()); + StIvtIostorinvdtl oldDtl = outDtl; + // 转换为冲销出库的手工入库明细 + // 新的明细id + outDtl.setIostorinvdtl_id(newDtlId); + // 新的单据id + outDtl.setIostorinv_id(manualInStorageOrderId); + outDtl.setSeq_no(BigDecimal.valueOf(i + 1)); + outDtl.setBill_status("30"); + outDtl.setReal_qty(BigDecimal.ZERO); + outDtl.setSource_billdtl_id(oldDtl.getSource_billdtl_id()); + outDtl.setSource_bill_type(oldOutOrder.getBill_type()); + outDtl.setSource_bill_code(oldOutOrder.getBill_code()); + outDtl.setSource_bill_table("st_ivt_iostorinvdtl"); + outDtl.setAssign_qty(disRow.getPlan_qty()); + outDtl.setUnassign_qty(BigDecimal.ZERO); + // 手工入库明细 后面批次插入 + needSaveDtlList.add(outDtl); + disRow.setIostorinvdis_id(getStringId()); + disRow.setSeq_no(BigDecimal.ONE); + disRow.setSect_id(""); + disRow.setSect_code(""); + disRow.setSect_name(""); + disRow.setWork_status("00"); + disRow.setReal_qty(BigDecimal.ZERO); + disRow.setPoint_id(0L); + disRow.setTask_id(""); + needSaveDisList.add(disRow); + //将包装关系中对应的记录状态改为包装 + LambdaUpdateWrapper upLam = new LambdaUpdateWrapper<>(); + upLam.set(PdmBiSubpackagerelation::getStatus, "1") + .eq(PdmBiSubpackagerelation::getPackage_box_sn, disRow.getBox_no()); + if ("1001".equals(oldOutOrder.getBill_type())) { + upLam.eq(PdmBiSubpackagerelation::getStatus, "3"); + } + subpackagerelationService.update(upLam); + } + iostorinvdtlService.updateBatchById(needSaveDtlList); + iostorinvdisService.updateBatchById(needSaveDisList); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java index 7f3d4e9..287123f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/impl/RawAssistIStorServiceImpl.java @@ -248,10 +248,10 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { .remark((String) whereJson.get("remark")) .bill_status((String) whereJson.get("bill_status")) .create_mode("01") - .input_optid(Long.valueOf(currentUserId)) + .input_optid(currentUserId) .input_optname(nickName) .input_time(String.valueOf(DateUtil.parse(now))) - .update_optid(Long.valueOf(currentUserId)) + .update_optid(currentUserId) .update_optname(nickName) .update_time(String.valueOf(DateUtil.parse(now))) .is_delete("0") @@ -496,7 +496,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String now = DateUtil.now(); // 2. 更新主表信息 - mainRecord.setUpdate_optid(Long.valueOf(currentUserId)); + mainRecord.setUpdate_optid(currentUserId); mainRecord.setUpdate_optname(nickName); mainRecord.setUpdate_time(now); @@ -751,10 +751,10 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { struct_name = map.get("struct_name"); } StIvtIostorinvdis dis = StIvtIostorinvdis.builder() - .sect_id(Long.valueOf(sect_id)) + .sect_id(sect_id) .sect_code(sect_code) .sect_name(sect_name) - .struct_id(Long.valueOf(struct_id)) + .struct_id(struct_id) .struct_code(struct_code) .struct_name(struct_name) .build(); @@ -791,7 +791,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { if ("09".equals(sectAttr.getSect_type_attr())) { isVirtual = true; String taskId = cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextIdStr(); - dis.setTask_id(Long.valueOf(taskId)); + dis.setTask_id(taskId); dis.setWork_status("01"); } } @@ -809,7 +809,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { String taskId = task.createTask(taskForm); task.immediateNotifyAcs(taskId); - dis.setTask_id(Long.valueOf(taskId)); + dis.setTask_id(taskId); dis.setWork_status("01"); } @@ -864,13 +864,13 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { if (dtlList.isEmpty()) { mst.setBill_status("40"); - mst.setDis_optid(Long.valueOf(currentUserId)); + mst.setDis_optid(currentUserId); mst.setDis_optname(nickName); mst.setDis_time(DateUtil.now()); stIvtIostorinvMapper.updateById(mst); } else { mst.setBill_status("30"); - mst.setDis_optid(Long.valueOf(currentUserId)); + mst.setDis_optid(currentUserId); mst.setDis_optname(nickName); mst.setDis_time(DateUtil.now()); stIvtIostorinvMapper.updateById(mst); @@ -882,7 +882,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService { stIvtIostorinvdtlMapper.updateById(dtl); mst.setBill_status("30"); - mst.setDis_optid(Long.valueOf(currentUserId)); + mst.setDis_optid(currentUserId); mst.setDis_optname(nickName); mst.setDis_time(DateUtil.now()); stIvtIostorinvMapper.updateById(mst); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java new file mode 100644 index 0000000..4c95d08 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/OutWriteOffVo.java @@ -0,0 +1,75 @@ +package org.nl.wms.st.inbill.service.vo; + +import lombok.Data; + +/** + * @Author: lyd + * @Date: 2025/6/10 + */ +@Data +public class OutWriteOffVo { + private String trans_code; + private String is_writeoff; + private String input_optname; + private String input_time; + private String stor_id; + private String syscompanyid; + private String writeoff_time; + private String car_type; + private String create_mode; + private String bill_type; + private String is_upload; + private String upload_mes; + private String consignee; + private String receiver; + private String total_qty; + private String receiptphone; + private String source_type; + private String other_freight; + private String sysdeptid; + private String upload_sap; + private String receiptaddress; + private String input_optid; + private String buss_type; + private String upload_time; + private String estimated_freight; + private String detail_count; + private String carno; + private String out_stor_id; + private String deliveryaddress; + private String update_optid; + private String stor_code; + private String drivername; + private String upload_optid; + private String bill_code; + private String dis_optname; + private String order_number; + private String confirm_optid; + private String remark; + private String writeoff_optid; + private String dis_time; + private String deliveryunit; + private String total_weight; + private String deliveryname; + private String update_time; + private String update_optname; + private String driverphone; + private String source_name; + private String biz_date; + private String contractno; + private String deliveryphone; + private String confirm_optname; + private String is_overdue; + private String run_freight; + private String unload_freight; + private String bill_status; + private String dis_optid; + private String confirm_time; + private String is_delete; + private String cust_code; + private String iostorinv_id; + private String logisticscompany; + private String stor_name; + private String io_type; + private String source_id; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/package-info.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/package-info.java new file mode 100644 index 0000000..283234c --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/service/vo/package-info.java @@ -0,0 +1,6 @@ +/** + * 前端显示实体包 + * @Author: lyd + * @Date: 2025/6/10 + */ +package org.nl.wms.st.inbill.service.vo; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/enums/OutBillTypeEnum.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/enums/OutBillTypeEnum.java index 085ad43..4253b8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/enums/OutBillTypeEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/enums/OutBillTypeEnum.java @@ -9,6 +9,17 @@ import java.util.Map; * @Date: 2025/6/6 */ public enum OutBillTypeEnum { + SHIP_OUT("1001", "发货出库"), + RE_CUT_OUT("1003", "改切出库"), + TRANSFER_OUT("1004", "调拨出库"), + UNBOXING_OUT("1005", "拆箱出库"), + RE_INSPECTION_OUT("1006", "返检出库"), + BEYOND_SERVICE_LIFE("1007", "超期报废"), + RETURN_FOR_SCRAP("1008", "退货报废"), + QUALITY_ISSUES_SCRAP("10010", "质量问题报废"), + OTHER_SCRAP("1002", "其他报废"), + SORTING_OUT("1011", "分拣出库"), + MANUAL_OUT("1009", "手工出库") ; private final String code; diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js index bc41b9b..e20aaea 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js +++ b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js @@ -63,7 +63,7 @@ export function getOutBillTask(params) { } export function getInvTypes() { return request({ - url: '/api/checkoutbill/getInvTypes', + url: '/api/check/getInvTypes', method: 'get' }) }