diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java index 54406b9..e4aa466 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/MaterialbaseController.java @@ -69,5 +69,11 @@ public class MaterialbaseController { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + @PostMapping("/queryMater") + @Log("获取物料") + public ResponseEntity queryMater(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(iMdMeMaterialbaseService.getByCode(whereJson.getString("material_code")),HttpStatus.OK); + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SupplierController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SupplierController.java index 7426fe3..6e306a0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SupplierController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SupplierController.java @@ -61,4 +61,10 @@ public class SupplierController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/getSupp") + @Log("获取供应商") + public ResponseEntity getSupp() { + return new ResponseEntity<>(iMdCsSupplierbaseService.getSupp(), HttpStatus.OK); + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdCsSupplierbaseService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdCsSupplierbaseService.java index d5a0b83..dbf5e83 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdCsSupplierbaseService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdCsSupplierbaseService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase; +import java.util.List; import java.util.Map; import java.util.Set; @@ -43,4 +44,11 @@ public interface IMdCsSupplierbaseService extends IService { * @param ids 供应商标识集合 */ void delete(Set ids); + + /** + * 获取供应商 + * @return List + */ + List getSupp(); + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdCsSupplierbaseServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdCsSupplierbaseServiceImpl.java index 736881d..33d2e37 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdCsSupplierbaseServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdCsSupplierbaseServiceImpl.java @@ -16,9 +16,11 @@ import org.nl.wms.basedata_manage.enums.BaseDataEnum; import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService; import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase; import org.nl.wms.basedata_manage.service.dao.mapper.MdCsSupplierbaseMapper; +import org.nl.wms.warehouse_management.enums.IOSConstant; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Map; import java.util.Set; @@ -59,7 +61,7 @@ public class MdCsSupplierbaseServiceImpl extends ServiceImpl ids) { this.baseMapper.deleteBatchIds(ids); } + + @Override + public List getSupp() { + return this.baseMapper.selectList( + new QueryWrapper().lambda() + .eq(MdCsSupplierbase::getIs_used, IOSConstant.IS_DELETE_YES) + .eq(MdCsSupplierbase::getIs_delete, IOSConstant.IS_DELETE_NO) + ); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java index d17ebec..a90e153 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaIosOutServiceImpl.java @@ -18,8 +18,10 @@ import org.nl.wms.sch_manage.service.util.tasks.BackInTask; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IRawAssistIStorService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; +import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; import org.nl.wms.warehouse_management.service.util.UpdateIvtUtils; @@ -27,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.math.BigDecimal; /** @@ -88,6 +91,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { @Autowired private IRawAssistIStorService iRawAssistIStorService; + @Resource + private GroupPlateMapper groupPlateMapper; + @Override public PdaResponse getDtl(JSONObject whereJson) { return PdaResponse.requestParamOk(mdPbStoragevehicleextMapper.getIosDtl(whereJson)); @@ -129,6 +135,14 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { // 更新分配明细实际出库数量 disDao.setReal_qty(jsonIvt.getBigDecimal("qty")); ioStorInvDisMapper.updateById(disDao); + // 删除组盘信息 + groupPlateMapper.delete( + new QueryWrapper().lambda() + .eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库")) + .eq(GroupPlate::getPcsn,disDao.getPcsn()) + .eq(GroupPlate::getMaterial_id,disDao.getMaterial_id()) + .eq(GroupPlate::getStoragevehicle_code,disDao.getStoragevehicle_code()) + ); } else { // ------剩余回库------ // 更新库存 :变动数量 = 减可用(库存数量-(实际出库数量-计划数量)) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java index 7ea6115..f0f7700 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/tasks/BackInTask.java @@ -19,10 +19,14 @@ import org.nl.wms.sch_manage.service.util.AbstractTask; import org.nl.wms.sch_manage.service.util.AcsTaskDto; import org.nl.wms.sch_manage.service.util.TaskType; import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * @Author: Liuxy * @Description: 余料回库类 @@ -50,6 +54,9 @@ public class BackInTask extends AbstractTask { @Autowired private IStructattrService iStructattrService; + @Resource + private IMdPbGroupplateService iMdPbGroupplateService; + @Override public String create(JSONObject json) { SchBaseTask task = new SchBaseTask(); @@ -131,7 +138,7 @@ public class BackInTask extends AbstractTask { if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) { throw new BadRequestException("只能取消生成中的任务!"); } - this.cancelTask(taskObj); + this.cancelTask(taskObj); } @Override @@ -143,22 +150,30 @@ public class BackInTask extends AbstractTask { // 更新终点 iStructattrService.update( new UpdateWrapper().lambda() - .eq(Structattr::getStruct_code, taskObj.getPoint_code2()) - .set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code()) - .set(Structattr::getTaskdtl_id, null) - .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(Structattr::getStruct_code, taskObj.getPoint_code2()) + .set(Structattr::getStoragevehicle_code, taskObj.getVehicle_code()) + .set(Structattr::getTaskdtl_id, null) + .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) ); // 更新起点 iSchBasePointService.update( new UpdateWrapper().lambda() - .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) - .set(SchBasePoint::getVehicle_code, null) - .set(SchBasePoint::getIos_id, null) + .eq(SchBasePoint::getPoint_code, taskObj.getPoint_code1()) + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getIos_id, null) ); // 更新任务 taskObj.setRemark("已完成"); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskService.updateById(taskObj); + + // 更新组盘状态 + iMdPbGroupplateService.update( + new UpdateWrapper().lambda() + .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + .eq(GroupPlate::getStoragevehicle_code, taskObj.getVehicle_code()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库")) + ); } @Transactional diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java new file mode 100644 index 0000000..1cbeaa9 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java @@ -0,0 +1,78 @@ +package org.nl.wms.warehouse_management.controller; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.warehouse_management.service.IStIvtSalesorderService; +import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 出入库回传 控制层 + *

+ * + * @author Liuxy + * @since 2025-06-03 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/salesorder") +@Slf4j +public class SalesOrderController { + + @Autowired + private IStIvtSalesorderService iStIvtSalesorderService; + + @GetMapping + @Log("分页查询") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iStIvtSalesorderService.queryAll(whereJson, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增销售单") + public ResponseEntity create(@Validated @RequestBody StIvtSalesorder dao) { + iStIvtSalesorderService.create(dao); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改销售单") + public ResponseEntity update(@Validated @RequestBody StIvtSalesorder dao) { + iStIvtSalesorderService.update(dao); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除销售单") + public ResponseEntity delete(@RequestBody Set ids) { + iStIvtSalesorderService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/checkIos") + @Log("审核") + public ResponseEntity checkIos(@Validated @RequestBody StIvtSalesorder dao) { + iStIvtSalesorderService.checkIos(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/createOutIos") + @Log("创建出库单") + public ResponseEntity createOutIos(@Validated @RequestBody StIvtSalesorder dao) { + iStIvtSalesorderService.createOutIos(dao); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java index 2ac744e..bbd27bc 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSConstant.java @@ -80,4 +80,9 @@ public class IOSConstant { * 主存区编码 */ public final static String SECT_CODE = "ZC01"; + + /** + * 仓库ID + */ + public final static String STOR_ID = "1582991156504039424"; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java index cd2fa9c..36036f0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/enums/IOSEnum.java @@ -30,6 +30,9 @@ public enum IOSEnum { // 入库业务类型 BILL_TYPE(MapOf.of("生产入库","0001", "手工入库", "0009")), + // 出库业务类型 + BILL_TYPE_OUT(MapOf.of("销售出库","1001", "手工出库", "1009")), + //入库分配明细状态 INBILL_DIS_STATUS(MapOf.of("未生成", "00", "生成", "01", "执行中", "02", "完成", "99")), @@ -77,6 +80,9 @@ public enum IOSEnum { // 盘点明细状态 CHECK_DTL_STATUS(MapOf.of("生成", "10", "盘点中", "20", "已盘点", "30", "完成", "99")), + // 销售单状态 + SALE_STATUS(MapOf.of("生成", "1", "审核", "2", "下发", "3", "完成", "9")), + ; private Map code; diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java new file mode 100644 index 0000000..497c393 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java @@ -0,0 +1,62 @@ +package org.nl.wms.warehouse_management.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; + +import java.util.Map; +import java.util.Set; + +/** + *

+ * 销售单管理 服务类 + *

+ * + * @author Liuxy + * @since 2025-09-23 + */ +public interface IStIvtSalesorderService extends IService { + + /** + * 分页查询 + * + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage queryAll(Map whereJson, PageQuery page); + + /** + * 新增销售单 + * + * @param dao 销售单实体类 + */ + void create(StIvtSalesorder dao); + + /** + * 修改销售单 + * + * @param dao 销售单实体类 + */ + void update(StIvtSalesorder dao); + + /** + * 删除销售单 + * + * @param ids 标识 + */ + void delete(Set ids); + + /** + * 审核 + * @param dao 实体类 + */ + void checkIos(StIvtSalesorder dao); + + /** + * 创建出库单 + * @param dao 实体类 + */ + void createOutIos(StIvtSalesorder dao); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtSalesorder.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtSalesorder.java new file mode 100644 index 0000000..6a52417 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/StIvtSalesorder.java @@ -0,0 +1,122 @@ +package org.nl.wms.warehouse_management.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 销售单管理 + *

+ * + * @author Liuxy + * @since 2025-09-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_salesorder") +public class StIvtSalesorder implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 销售单标识 + */ + @TableId(value = "sale_id") + private String sale_id; + + /** + * 销售单编码 + */ + private String sale_code; + + /** + * 物料编码 + */ + private String material_code; + + /** + * 物料名称 + */ + private String material_name; + + /** + * 客户编码 + */ + private String supp_code; + + /** + * 客户名称 + */ + private String supp_name; + + /** + * 销售数量 + */ + private BigDecimal sale_qty; + + /** + * 数量计量单位标识 + */ + private String qty_unit_id; + + /** + * 数量计量单位名称 + */ + private String qty_unit_name; + + /** + * 销售单状态 + */ + private String sale_status; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人名称 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 审核人 + */ + private String check_id; + + /** + * 审核人名称 + */ + private String check_name; + + /** + * 审核时间 + */ + private String check_time; + + /** + * 完成人 + */ + private String confirm_id; + + /** + * 完成人名称 + */ + private String confirm_name; + + /** + * 完成时间 + */ + private String confirm_time; + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.java new file mode 100644 index 0000000..234fff1 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.warehouse_management.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; + +/** + *

+ * 销售单管理 Mapper 接口 + *

+ * + * @author Liuxy + * @since 2025-09-23 + */ +public interface StIvtSalesorderMapper extends BaseMapper { + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.xml new file mode 100644 index 0000000..02e9f40 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/StIvtSalesorderMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java index 3c2f455..eef88fe 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java @@ -2,7 +2,6 @@ package org.nl.wms.warehouse_management.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; @@ -10,6 +9,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -24,8 +24,6 @@ import org.nl.wms.basedata_manage.service.IBsrealStorattrService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.BsrealStorattr; -import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; -import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; import org.nl.wms.basedata_manage.service.dto.MdPbStoragevehicleextDto; import org.nl.wms.sch_manage.enums.TaskStatus; @@ -33,22 +31,18 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBasePoint; import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper; -import org.nl.wms.sch_manage.service.util.tasks.StInTask; import org.nl.wms.sch_manage.service.util.tasks.StOutTask; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IOutBillService; -import org.nl.wms.warehouse_management.service.dao.GroupPlate; -import org.nl.wms.warehouse_management.service.dao.IOStorInv; -import org.nl.wms.warehouse_management.service.dao.IOStorInvDis; -import org.nl.wms.warehouse_management.service.dao.IOStorInvDtl; +import org.nl.wms.warehouse_management.service.IStIvtSalesorderService; +import org.nl.wms.warehouse_management.service.dao.*; import org.nl.wms.warehouse_management.service.dao.mapper.GroupPlateMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDisMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvDtlMapper; import org.nl.wms.warehouse_management.service.dao.mapper.IOStorInvMapper; import org.nl.wms.warehouse_management.service.dto.IOStorInvDisDto; import org.nl.wms.warehouse_management.service.dto.IOStorInvDtlDto; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -100,6 +94,8 @@ public class OutBillServiceImpl extends ServiceImpl i @Resource private SchBasePointMapper schBasePointMapper; + @Resource + private IStIvtSalesorderService iStIvtSalesorderService; @Override public IPage pageQuery(Map whereJson, PageQuery page, String[] stor_id, String[] bill_status, String[] bill_type) { @@ -287,6 +283,7 @@ public class OutBillServiceImpl extends ServiceImpl i map.put("update_optid", currentUserId); map.put("update_optname", nickName); map.put("update_time", now); + map.put("source_id", map.getString("source_id")); map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否")); map.put("is_upload", BaseDataEnum.IS_YES_NOT.code("否")); // 主表重量 @@ -1136,6 +1133,7 @@ public class OutBillServiceImpl extends ServiceImpl i //更新组盘记录表 groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class) .set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库")) + .eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库")) .eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn()) .eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id()) .eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()) @@ -1200,7 +1198,13 @@ public class OutBillServiceImpl extends ServiceImpl i //修改库存 恢复库存 手持进行减扣 List updateIvtList = new ArrayList<>(); JSONObject jsonIvt = new JSONObject(); - jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE); + IOStorInv iosMst = this.getById(ioStorInvDis.getIostorinv_id()); + + if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("手工出库"))) { + jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN); + } else { + jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE); + } jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code()); jsonIvt.put("material_id", ioStorInvDis.getMaterial_id()); jsonIvt.put("pcsn", ioStorInvDis.getPcsn()); @@ -1217,8 +1221,14 @@ public class OutBillServiceImpl extends ServiceImpl i .eq(SchBasePoint::getPoint_code,ioStorInvDis.getPoint_code()) ); - // 判断是否是整出 - if (ioStorInvDis.getReal_qty().doubleValue() >= ioStorInvDis.getPlan_qty().doubleValue()) { + if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("手工出库"))) { + groupPlateMapper.delete( + new QueryWrapper().lambda() + .eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn()) + .eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id()) + .eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()) + ); + } else { //更新组盘记录表 groupPlateMapper.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class) .set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库")) @@ -1261,6 +1271,18 @@ public class OutBillServiceImpl extends ServiceImpl i .set(IOStorInv::getConfirm_time,now) .eq(IOStorInv::getIostorinv_id,ioStorInvDtl.getIostorinv_id()) ); + // 如果是销售出库更新 状态 + if (iosMst.getBill_type().equals(IOSEnum.BILL_TYPE_OUT.code("销售出库"))) { + iStIvtSalesorderService.update( + new UpdateWrapper().lambda() + .set(StIvtSalesorder::getSale_status, IOSEnum.SALE_STATUS.code("完成")) + .set(StIvtSalesorder::getConfirm_id, currentUserId) + .set(StIvtSalesorder::getConfirm_name, nickName) + .set(StIvtSalesorder::getConfirm_time, now) + .eq(StIvtSalesorder::getSale_id, iosMst.getSource_id()) + ); + } + } } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index c0a0768..ce03a37 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -736,6 +736,8 @@ public class RawAssistIStorServiceImpl extends ServiceImpl structattrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class) .eq(Structattr::getSect_id,sect_id) .eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(Structattr::getIs_used,IOSConstant.IS_DELETE_YES) + .eq(Structattr::getIs_delete,IOSConstant.IS_DELETE_NO) .and(wrapper -> wrapper.isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code,"")) .eq(mdPbStoragevehicleinfo.getStoragevehicle_type().equals(IOSEnum.VEHICLE_TYPE.code("金属托盘")), Structattr::getStoragevehicle_type, IOSEnum.VEHICLE_TYPE_PUT.code("金属托盘")) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java new file mode 100644 index 0000000..186edf6 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java @@ -0,0 +1,174 @@ +package org.nl.wms.warehouse_management.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService; +import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; +import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; +import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase; +import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; +import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; +import org.nl.wms.basedata_manage.service.dao.Sectattr; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IOutBillService; +import org.nl.wms.warehouse_management.service.IStIvtSalesorderService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; +import org.nl.wms.warehouse_management.service.dao.mapper.StIvtSalesorderMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + *

+ * 销售单管理 服务实现类 + *

+ * + * @author Liuxy + * @since 2025-09-23 + */ +@Service +public class StIvtSalesorderServiceImpl extends ServiceImpl implements IStIvtSalesorderService { + + @Autowired + private IMdCsSupplierbaseService iMdCsSupplierbaseService; + + @Autowired + private IMdPbMeasureunitService iMdPbMeasureunitService; + + @Autowired + private IMdMeMaterialbaseService iMdMeMaterialbaseService; + + @Autowired + private IOutBillService iOutBillService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page) { + String sale_code = MapUtil.getStr(whereJson, "sale_code"); + String material_code = MapUtil.getStr(whereJson, "material_code"); + String supp_code = MapUtil.getStr(whereJson, "supp_code"); + String sale_status = MapUtil.getStr(whereJson, "sale_status"); + String begin_time = MapUtil.getStr(whereJson, "begin_time"); + String end_time = MapUtil.getStr(whereJson, "end_time"); + + LambdaQueryWrapper lambda = new QueryWrapper().lambda(); + lambda.eq(ObjectUtil.isNotEmpty(sale_status), StIvtSalesorder::getSale_status, sale_status); + lambda.like(ObjectUtil.isNotEmpty(sale_code), StIvtSalesorder::getSale_code, sale_code); + + if (ObjectUtil.isNotEmpty(material_code)) { + lambda.like( StIvtSalesorder::getMaterial_code, material_code) + .or(qw -> qw.like(StIvtSalesorder::getMaterial_name, material_code)); + } + if (ObjectUtil.isNotEmpty(supp_code)) { + lambda.like( StIvtSalesorder::getSupp_code, supp_code) + .or(qw -> qw.like(StIvtSalesorder::getSupp_name, supp_code)); + } + lambda.ge(ObjectUtil.isNotEmpty(begin_time), StIvtSalesorder::getCreate_time, begin_time); + lambda.lt(ObjectUtil.isNotEmpty(end_time), StIvtSalesorder::getCreate_time, end_time); + + return this.baseMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), + lambda + ); + } + + @Override + @Transactional + public void create(StIvtSalesorder dao) { + dao.setSale_id(IdUtil.getStringId()); + dao.setSale_code(CodeUtil.getNewCode("SALE_CODE")); + dao.setSale_status(IOSEnum.SALE_STATUS.code("生成")); + dao.setCreate_id(SecurityUtils.getCurrentUserId()); + dao.setCreate_name(SecurityUtils.getCurrentNickName()); + dao.setCreate_time(DateUtil.now()); + // 查询供应商编码 + + MdCsSupplierbase suppDao = iMdCsSupplierbaseService.getOne( + new QueryWrapper().lambda() + .eq(MdCsSupplierbase::getSupp_code, dao.getSupp_code()) + ); + dao.setSupp_name(suppDao.getSupp_name()); + // 默认数量个 + MdPbMeasureunit unitDao = iMdPbMeasureunitService.getByCode("EA"); + dao.setQty_unit_id(unitDao.getMeasure_unit_id()); + dao.setQty_unit_name(unitDao.getUnit_name()); + this.save(dao); + } + + @Override + @Transactional + public void update(StIvtSalesorder dao) { + // 查询供应商编码 + MdCsSupplierbase suppDao = iMdCsSupplierbaseService.getOne( + new QueryWrapper().lambda() + .eq(MdCsSupplierbase::getSupp_code, dao.getSupp_code()) + ); + dao.setSupp_name(suppDao.getSupp_name()); + this.updateById(dao); + } + + @Override + @Transactional + public void delete(Set ids) { + this.removeByIds(ids); + } + + @Override + @Transactional + public void checkIos(StIvtSalesorder dao) { + dao.setSale_status(IOSEnum.SALE_STATUS.code("审核")); + dao.setCheck_id(SecurityUtils.getCurrentUserId()); + dao.setCheck_name(SecurityUtils.getCurrentNickName()); + dao.setCheck_time(DateUtil.now()); + this.updateById(dao); + } + + @Override + @Transactional + public void createOutIos(StIvtSalesorder dao) { + // 组织主表数据 + JSONObject jsonMst = new JSONObject(); + jsonMst.put("stor_id", IOSConstant.STOR_ID); + jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成")); + jsonMst.put("total_qty", dao.getSale_qty()); + jsonMst.put("detail_count", 1); + jsonMst.put("bill_type", IOSEnum.BILL_TYPE_OUT.code("销售出库")); + jsonMst.put("biz_date", DateUtil.now()); + jsonMst.put("source_id", dao.getSale_id()); + + // 组织明细数据 + ArrayList tableData = new ArrayList<>(); + JSONObject dtl = new JSONObject(); + dtl.put("qty_unit_id", dao.getQty_unit_id()); + dtl.put("qty_unit_name", dao.getQty_unit_name()); + dtl.put("qty", dao.getSale_qty().toString()); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(dao.getMaterial_code()); + dtl.put("material_id", materDao.getMaterial_id()); + dtl.put("material_code", dao.getMaterial_code()); + dtl.put("material_name", dao.getMaterial_name()); + dtl.put("plan_qty", dao.getSale_qty().toString()); + // 调用新增 + tableData.add(dtl); + jsonMst.put("tableData",tableData); + iOutBillService.insertDtl(jsonMst); + + // 更新销售单状态 + dao.setSale_status(IOSEnum.SALE_STATUS.code("下发")); + this.updateById(dao); + } + +} diff --git a/wms/nladmin-ui/src/views/wms/basedata/material/material.js b/wms/nladmin-ui/src/views/wms/basedata/material/material.js index 8e57e4e..03abec1 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/material/material.js +++ b/wms/nladmin-ui/src/views/wms/basedata/material/material.js @@ -55,4 +55,12 @@ export function materialSync(data) { }) } -export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries, materialSync } +export function queryMater(data) { + return request({ + url: 'api/Materia/queryMater', + method: 'post', + data + }) +} + +export default { add, edit, del, getMaterOptType, isAlongMaterType, getProductSeries, materialSync, queryMater } diff --git a/wms/nladmin-ui/src/views/wms/basedata/supp/supplierbase.js b/wms/nladmin-ui/src/views/wms/basedata/supp/supplierbase.js index d04cf8b..7a21e90 100644 --- a/wms/nladmin-ui/src/views/wms/basedata/supp/supplierbase.js +++ b/wms/nladmin-ui/src/views/wms/basedata/supp/supplierbase.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function getSupp(data) { + return request({ + url: 'api/supplierbase/getSupp', + method: 'post', + data + }) +} + +export default { add, edit, del, getSupp } diff --git a/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue b/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue new file mode 100644 index 0000000..2c406ac --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/wms/nladmin-ui/src/views/wms/st/saleorder/saleorder.js b/wms/nladmin-ui/src/views/wms/st/saleorder/saleorder.js new file mode 100644 index 0000000..7a059ef --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/st/saleorder/saleorder.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/salesorder', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/salesorder/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/salesorder', + method: 'put', + data + }) +} + +export function checkIos(data) { + return request({ + url: 'api/salesorder/checkIos', + method: 'post', + data + }) +} + +export function createOutIos(data) { + return request({ + url: 'api/salesorder/createOutIos', + method: 'post', + data + }) +} + +export default { add, edit, del, checkIos, createOutIos }