diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls index f0615451..27cdf427 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/aps_manage/mps.xls differ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java new file mode 100644 index 00000000..057e7975 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java @@ -0,0 +1,21 @@ +package org.nl.wms.mps_manage.ordermanage.controller.saleOrder; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 生产订单表 前端控制器 + *

+ * + * @author generator + * @since 2023-05-25 + */ +@RestController +@RequestMapping("/mpsSaleOrder") +public class MpsSaleOrderController { + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java new file mode 100644 index 00000000..ed3e74c5 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java @@ -0,0 +1,16 @@ +package org.nl.wms.mps_manage.ordermanage.service.saleOrder; + +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 生产订单表 服务类 + *

+ * + * @author generator + * @since 2023-05-25 + */ +public interface IMpsSaleOrderService extends IService { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java new file mode 100644 index 00000000..2244a6dc --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/MpsSaleOrder.java @@ -0,0 +1,165 @@ +package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 生产订单表 + *

+ * + * @author generator + * @since 2023-05-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mps_sale_order") +public class MpsSaleOrder implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 销售单标识 + */ + private Long sale_id; + + /** + * 销售单号 + */ + private String sale_code; + + /** + * 明细序号 + */ + private BigDecimal seq_no; + + /** + * 销售单类型 + */ + private String sale_type; + + /** + * 物料标识 + */ + private Long material_id; + + /** + * 状态 + */ + private String status; + + /** + * 销售数量 + */ + private BigDecimal sale_qty; + + /** + * 生产顺序 + */ + private BigDecimal produce_seq; + + /** + * 客户标识 + */ + private Long cust_id; + + /** + * 客户编码 + */ + private String cust_code; + + /** + * 客户名称 + */ + private String cust_name; + + /** + * 计量单位标识 + */ + private Long qty_unit_id; + + /** + * 计划交期 + */ + private String plandeliver_date; + + /** + * 创建人 + */ + private Long create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 提交人 + */ + private Long audit_optid; + + /** + * 提交时间 + */ + private String audit_time; + + /** + * 提交人姓名 + */ + private String audit_optname; + + /** + * 确认人 + */ + private Long confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 备注 + */ + private String remark; + + /** + * 车间标识 + */ + private Long workshop_id; + + /** + * 生产数量 + */ + private BigDecimal product_qty; + + /** + * 预入库数量 + */ + private BigDecimal instor_qty; + + /** + * 发货数量 + */ + private BigDecimal sendout_qty; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java new file mode 100644 index 00000000..a8480826 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper; + +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 生产订单表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-25 + */ +public interface MpsSaleOrderMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml new file mode 100644 index 00000000..6fc43f10 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java new file mode 100644 index 00000000..6df31f6d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java @@ -0,0 +1,20 @@ +package org.nl.wms.mps_manage.ordermanage.service.saleOrder.impl; + +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper.MpsSaleOrderMapper; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 生产订单表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-25 + */ +@Service +public class MpsSaleOrderServiceImpl extends ServiceImpl implements IMpsSaleOrderService { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java new file mode 100644 index 00000000..78cc2ece --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java @@ -0,0 +1,74 @@ +package org.nl.wms.storage_manage.productmanage.controller.iostorInv; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequiredArgsConstructor +@Api(tags = "成品出库") +@RequestMapping("/api/productOut") +@Slf4j +public class IStivtlostorivnCpOutController { + + @Autowired + private IStIvtIostorinvCpOutService iStIvtIostorinvCpOutService; + + @GetMapping + @Log("查询出库单") + @ApiOperation("查询出库单") + public ResponseEntity query(IostorInvQuery query, PageQuery page){ + return new ResponseEntity<>(iStIvtIostorinvCpOutService.pageQuery(query,page),HttpStatus.OK); + } + + @PostMapping + @Log("创建出库单") + @ApiOperation("创建出库单") + public ResponseEntity create(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpOutService.create(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/update") + @Log("修改出库单") + @ApiOperation("修改出库单") + public ResponseEntity update(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpOutService.update(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/delete") + @Log("删除出库单") + @ApiOperation("删除出库单") + public ResponseEntity delete(@RequestBody Long[] ids){ + iStIvtIostorinvCpOutService.delete(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/getIosInvDtl") + @Log("获取明细") + @ApiOperation("获取明细") + public ResponseEntity getIosInvDtl(@RequestBody JSONObject whereJson){ + return new ResponseEntity<>(iStIvtIostorinvCpOutService.getIosInvDtl(whereJson),HttpStatus.OK); + } + + @PostMapping("/getIosInvDis") + @Log("获取分配明细") + @ApiOperation("获取明细") + public ResponseEntity getIosInvDis(@RequestBody JSONObject whereJson){ + return new ResponseEntity<>(iStIvtIostorinvCpOutService.getIosInvDis(whereJson),HttpStatus.OK); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java new file mode 100644 index 00000000..7361207f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java @@ -0,0 +1,86 @@ +package org.nl.wms.storage_manage.productmanage.service.iostorInv; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; + +import java.util.List; + +/** + *

+ * 出库单主表 服务类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +public interface IStIvtIostorinvCpOutService extends IService { + + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(IostorInvQuery query, PageQuery page); + + /** + * 创建 + * @param form / + */ + void create(JSONObject form); + + /** + * 更新相关联的表 + * @param form / + */ + void update(JSONObject form); + + /** + * 查询出出库单明细 + * @param whereJson + * { + * "bill_code": 单据号 + * "iostorinv_id": 主表标识 + * } + * @return List + * { + * "明细表所有字段" + * "material_code": 物料编码 + * "material_name": 物料名称 + * "material_spec": 物料批次 + * } + */ + List getIosInvDtl(JSONObject whereJson); + + /** + * 查询出出库单分配明细 + * @param whereJson + * { + * "iostorinvdtl_id": 明细表标识 + * "iostorinv_id": 主表标识 + * } + * + * @return List + * { + * "分配表所有字段" + * "bucketunique":箱号 + * "qty": 数量 + * "material_code": 物料编码 + * "material_name": 物料名称 + * "material_spec": 物料批次 + * } + */ + List getIosInvDis(JSONObject whereJson); + + /** + * 删除 + * @param ids + * { + * 主表id.. + * } + */ + void delete(Long[] ids); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java new file mode 100644 index 00000000..464f5718 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -0,0 +1,275 @@ +package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; +import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; +import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; +import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.*; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; +import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; +import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; +import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; +import org.nl.wms.storage_manage.productmanage.util.RuleUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +/** + *

+ * 出库单主表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +@Service +public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl implements IStIvtIostorinvCpOutService { + + @Autowired + protected IStIvtIostorinvdtlCpService iostorinvdtlCpService; // 成品出入库明细表服务 + + @Autowired + protected IStIvtIostorinvdisCpService iostorinvdisCpService; // 成品出入库分配表服务 + + @Autowired + protected IStIvtIostorinvdisdtlCpService iStIvtIostorinvdisdtlCpService; // 成品出入库分配明细表服务 + + @Autowired + protected IStIvtBsrealstorattrService stIvtBsrealstorattrService; // 实物属性表表服务 + + @Autowired + protected IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; // 载具信息表服务 + + @Autowired + protected IMdPbStoragevehicleextService iMdPbStoragevehicleextService; // 载具扩展属性信息表服务 + + @Autowired + protected DivRuleCpService divRuleCpService; // 成品分配规则服务类 + + @Autowired + protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务 + + @Autowired + private ISchBaseTaskService iSchBaseTaskService; // 任务表服务 + + @Autowired + private ISchBasePointService iSchBasePointService; // 点位服务 + + @Autowired + private IStIvtStructivtCpService iStIvtStructivtCpService; // 库存服务 + + @Autowired + protected IMdPbBucketrecordService iMdPbBucketrecordService; // 包装箱记录表服务 + + @Override + public Object pageQuery(IostorInvQuery query, PageQuery page) { + // 查询条件 + query.setIo_type(IOSEnum.IO_TYPE.code("出库")); + page.setSort("bill_code,DESC"); + + // 分页查询 + Page pageQuery = this.page(page.build(), query.build()); + TableDataInfo build = TableDataInfo.build(pageQuery); + + return build; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject form) { + + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空"); + + // 调用主表 插入/更新方法 + StIvtIostorinvCp stIvtIostorinvCp = packageMstForm(new StIvtIostorinvCp(), form, false); + // 插入主表 + this.save(stIvtIostorinvCp); + + // 调用明细表 插入/更新方法 + iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject form) { + + JSONArray rows = form.getJSONArray("tableData"); + if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("明细不能为空"); + + StIvtIostorinvCp iostorinvCp = this.getOne(new QueryWrapper().eq("iostorinv_id", form.getString("iostorinv_id"))); + packageMstForm(iostorinvCp,form,true); + + //创建明细 + iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id()); + // 更新主表 + this.updateById(iostorinvCp); + } + + + @Override + public List getIosInvDtl(JSONObject whereJson) { + // 查询主表明细 + List maps = iostorinvdtlCpService.queryInvDtlByInv(whereJson); + return maps; + } + + @Override + public List getIosInvDis(JSONObject whereJson) { + + // 查询分配表 + List maps = iostorinvdisCpService.queryInvDisByInvdtl(whereJson); + return maps; + + } + + + @Override + public void delete(Long[] ids) { + + for (Long id : ids) { + StIvtIostorinvCp dao = this.getOne(new QueryWrapper().eq("iostorinv_id", id)); + dao.setIs_delete(true); + + this.updateById(dao); + } + } + + + @NotNull + private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { + JSONArray rows = whereJson.getJSONArray("tableData"); + if (!isUpdate){ + // 新增 + stIvtIostorinvCp.setIostorinv_id(IdUtil.getStringId()); + stIvtIostorinvCp.setBill_code(CodeUtil.getNewCode("IO_CODE")); + stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("出库")); + stIvtIostorinvCp.setBuss_type(whereJson.getString("bill_type")); + stIvtIostorinvCp.setBill_type(stIvtIostorinvCp.getBuss_type()); + stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId()); + stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName()); + stIvtIostorinvCp.setCreate_time(new Date()); + stIvtIostorinvCp.setIs_delete(false); + // TODO 暂时写死 + stIvtIostorinvCp.setSysdeptid("111"); + stIvtIostorinvCp.setSyscompanyid("111"); + }else { + + // 修改 + stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId()); + stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName()); + stIvtIostorinvCp.setUpdate_time(new Date()); + } + + stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0,10)); + // 获取仓库信息 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(StIvtBsrealstorattr::getStor_id,whereJson.getString("stor_id")) + .eq(StIvtBsrealstorattr::getIs_used, true); + + StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper); + if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!"); + + stIvtIostorinvCp.setStor_id(bsrealDao.getStor_id()); + stIvtIostorinvCp.setStor_code(bsrealDao.getStor_code()); + stIvtIostorinvCp.setStor_name(bsrealDao.getStor_name()); + stIvtIostorinvCp.setTotal_qty(whereJson.getBigDecimal("total_qty")); + stIvtIostorinvCp.setDetail_count(rows.size()); + stIvtIostorinvCp.setRemark(whereJson.getString("remark")); + + return stIvtIostorinvCp; + } + + @NotNull + public void updateMst(String iostorinv_id) { + /* + 更新主表 + */ + + StIvtIostorinvCp mstDao = this.baseMapper.selectOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvCp::getIostorinv_id, iostorinv_id) + ); + mstDao.setUpdate_id(SecurityUtils.getCurrentUserId()); + mstDao.setUpdate_name(SecurityUtils.getCurrentNickName()); + mstDao.setUpdate_time(new Date()); + mstDao.setDis_id(SecurityUtils.getCurrentUserId()); + mstDao.setDis_name(SecurityUtils.getCurrentNickName()); + mstDao.setDis_time(DateUtil.now()); + + // 查询主表下所有明细 + List dtlDaoList = iostorinvdtlCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, iostorinv_id) + ); + + // 判断是否都为分配完 + boolean is_true = dtlDaoList + .stream() + .allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))); + + if (is_true) { + // 更新主表为分配完 + mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + } else { + // 更新主表为分配中 + mstDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中")); + } + + // 判断是否为生成 + boolean is_create = dtlDaoList + .stream() + .allMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("生成"))); + + if (is_create) mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + + this.updateById(mstDao); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index 72586305..67644810 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -389,8 +389,10 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl { * ivt_level:库存等级 * change_qty:变动数量 * change_type:变动类型 + * sale_id: 生产订单标识 * } */ void UpdateIvt(JSONObject json); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java index 284bfffb..f92b489d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java @@ -101,6 +101,7 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl - +