diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/QueryTEnum.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/QueryTEnum.java index cda03bf..12fac59 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/QueryTEnum.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/QueryTEnum.java @@ -31,7 +31,7 @@ public enum QueryTEnum { } }), ORLK((q, k, o) -> { - q.and(query -> { + q.nested(query -> { QueryWrapper queryWrapper = (QueryWrapper) query; for (int i = 0; i < k.length; i++) { queryWrapper.like(k[i], o); @@ -68,7 +68,15 @@ public enum QueryTEnum { } else { q.eq(k[0], v); } - }); + }), + NULL_OR_HAS((queryWrapper, k, v) -> { + if (v.equals("1")){ + queryWrapper.isNull(k[0]); + }else { + queryWrapper.isNotNull(k[0]); + } + }), + ; private org.nl.common.domain.interfaces.LConsumer, String[], Object> doP; @@ -79,4 +87,4 @@ public enum QueryTEnum { public static void build(QueryTEnum type, QueryWrapper q, String[] k, Object v) { type.getDoP().accept(q, k, v); } -} \ No newline at end of file +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java index b6a492f..8dc6226 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java @@ -43,5 +43,11 @@ public class CodeUtil { } } + public static String codeView(String ruleCode) { + final String[] code = {""}; + ISysCodeRuleService service = SpringContextHolder.getBean(ISysCodeRuleService.class); + RedissonUtils.lock(() -> code[0] = service.codeDemo(MapOf.of("flag","0","code",ruleCode)), ruleCode, 1); + return code[0]; + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java index 3bad5e4..e40df2d 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleServiceImpl.java @@ -61,7 +61,11 @@ public class SysCodeRuleServiceImpl extends ServiceImpl().eq(SysCodeRule::getCode, code)).getId(); + SysCodeRule sysCodeRule = codeRuleMapper.selectOne(new LambdaQueryWrapper().eq(SysCodeRule::getCode, code)); + if (sysCodeRule==null){ + throw new BadRequestException("为配置编码规格"+code); + } + String id = sysCodeRule.getId(); // 如果flag = 1就执行更新数据库的操作 String flag = (String) form.get("flag"); List ruleDetails = codeRuleDetailMapper.selectList(new LambdaQueryWrapper() diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java index 75c9687..b372b70 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java @@ -2,6 +2,7 @@ package org.nl.wms.basedata_manage.controller; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.RequiredArgsConstructor; @@ -11,6 +12,7 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.logging.annotation.Log; import org.nl.common.utils.IdUtil; +import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.warehouse_management.enums.IOSEnum; @@ -19,12 +21,16 @@ import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** @@ -54,26 +60,33 @@ public class GroupController { } @PostMapping - @Log("新增组盘组盘") + @Log("新增组盘") + @Transactional public ResponseEntity create(@RequestBody JSONObject group) { - Assert.noNullElements(new Object[]{group,group.get("material_id"),group.get("storagevehicle_code"),group.get("qty")},"请求参数不能为空"); - GroupPlate groupPlate = group.toJavaObject(GroupPlate.class); - String storagevehicleCode = groupPlate.getStoragevehicle_code(); + Assert.noNullElements(new Object[]{group, group.get("tableData"), group.get("storagevehicle_code")}, "请求参数不能为空"); + String storagevehicleCode = group.getString("storagevehicle_code"); { iMdPbStoragevehicleinfoService.getByCode(storagevehicleCode); int has = iMdPbGroupplateService.count(new LambdaUpdateWrapper() - .eq(GroupPlate::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) + .eq(GroupPlate::getStoragevehicle_code, storagevehicleCode) .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))); - if (has>0){ + if (has > 0) { throw new BadRequestException("当前载具组盘信息已存在"); } } - groupPlate.setGroup_id(IdUtil.getStringId()); - groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); - groupPlate.setCreate_name(SecurityUtils.getCurrentUsername()); - groupPlate.setCreate_time(DateUtil.now()); - groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); - iMdPbGroupplateService.save(groupPlate); + JSONArray rows = group.getJSONArray("tableData"); + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + GroupPlate groupPlate = row.toJavaObject(GroupPlate.class); + groupPlate.setStoragevehicle_code(storagevehicleCode); + groupPlate.setGroup_id(IdUtil.getStringId()); + groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setCreate_name(SecurityUtils.getCurrentUsername()); + groupPlate.setCreate_time(DateUtil.now()); + groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); + iMdPbGroupplateService.save(groupPlate); + } + return new ResponseEntity<>(HttpStatus.OK); } @@ -83,4 +96,17 @@ public class GroupController { iMdPbGroupplateService.delete(ids); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping(value = "/getAllGroupInfo") + @Log("通过载具号获取全部组盘信息") + public ResponseEntity getAllGroupInfo(@RequestBody JSONArray rows) { + List vehicle_list = rows.stream() + .map(obj -> (HashMap) obj) + .map(json -> json.get("storagevehicle_code")) + .distinct() + .collect(Collectors.toList()); + HashMap param = MapOf.of("status", IOSEnum.GROUP_PLATE_STATUS.code("组盘"), "vehicleCode", vehicle_list.get(0)); + List list = iMdPbGroupplateService.getVehicleMaterial(param); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java index 83452be..f947dd4 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StorageVehicleInfoController.java @@ -6,6 +6,8 @@ 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.common.utils.CodeUtil; +import org.nl.common.utils.MapOf; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; @@ -62,4 +64,11 @@ public class StorageVehicleInfoController { return new ResponseEntity<>(HttpStatus.OK); } + + @GetMapping("/getVehicle/{code}") + @Log("获取起始载具号") + public ResponseEntity getVehicle(@PathVariable String code) { + return new ResponseEntity<>(MapOf.of("value", CodeUtil.codeView(code)), HttpStatus.OK); + } + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructattrController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructattrController.java index 624b0b3..bb9ae51 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructattrController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructattrController.java @@ -9,6 +9,7 @@ import org.nl.common.domain.query.PageQuery; import org.nl.common.logging.annotation.Log; import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.dao.Structattr; +import org.nl.wms.basedata_manage.service.dto.StructattrQuery; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -37,7 +38,7 @@ public class StructattrController { @GetMapping @Log("查询仓位") - public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { + public ResponseEntity query(StructattrQuery whereJson, PageQuery page) { return new ResponseEntity<>(TableDataInfo.build(structattrService.queryAll(whereJson, page)), HttpStatus.OK); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java index 81dc77e..dd4ee42 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java @@ -9,6 +9,7 @@ import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto; import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto; +import org.nl.wms.basedata_manage.service.dto.StructattrQuery; import java.util.List; import java.util.Map; @@ -28,7 +29,7 @@ public interface IStructattrService extends IService { * @param page 分页参数 * @return Map */ - IPage queryAll(Map whereJson, PageQuery page); + IPage queryAll(StructattrQuery whereJson, PageQuery page); /** * 根据ID查询 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrQuery.java new file mode 100644 index 0000000..aacd36d --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrQuery.java @@ -0,0 +1,30 @@ +package org.nl.wms.basedata_manage.service.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; +import org.nl.wms.basedata_manage.service.dao.Structattr; + +/* * + *物料查询对象 + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class StructattrQuery extends BaseQuery { + private String search; + private String stor_id; + private String sect_id; + private String lock_type; + private String layer_num; + private String is_used; + private String is_have; + + @Override + public void paramMapping() { + super.doP.put("search", QParam.builder().k(new String[]{"struct_code","struct_name"}).type(QueryTEnum.ORLK).build()); + super.doP.put("is_have", QParam.builder().k(new String[]{"storagevehicle_code"}).type(QueryTEnum.NULL_OR_HAS).build()); + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index baf55c1..a2d9631 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -32,6 +32,7 @@ import org.nl.wms.basedata_manage.service.dao.mapper.StructattrMapper; import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto; +import org.nl.wms.basedata_manage.service.dto.StructattrQuery; import org.nl.wms.decision_manage.service.sectStrategy.IStSectStrategyService; import org.nl.wms.decision_manage.service.sectStrategy.dao.StSectStrategy; import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner; @@ -54,6 +55,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -85,30 +87,10 @@ public class StructattrServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { - - String search = (String) whereJson.get("search"); - String stor_id = (String) whereJson.get("stor_id"); - String sect_id = (String) whereJson.get("sect_id"); - String lock_type = (String) whereJson.get("lock_type"); - String layer_num = (String) whereJson.get("layer_num"); - String is_used = (String) whereJson.get("is_used"); - String is_have = (String) whereJson.get("is_have"); - - return structattrMapper.selectPage(new Page<>(page.getPage() + 1 ,page.getSize()), new LambdaQueryWrapper() - .like(StrUtil.isNotEmpty(search),Structattr::getStruct_code, search) - .like(StrUtil.isNotEmpty(search),Structattr::getStruct_name, search) - .eq(StrUtil.isNotEmpty(stor_id),Structattr::getStor_id, stor_id) - .eq(StrUtil.isNotEmpty(sect_id),Structattr::getSect_id, sect_id) - .eq(StrUtil.isNotEmpty(lock_type),Structattr::getLock_type, lock_type) - .eq(StrUtil.isNotEmpty(layer_num),Structattr::getLayer_num, layer_num) - .eq(StrUtil.isNotEmpty(is_used),Structattr::getIs_used, is_used) - .eq(Structattr::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")) - .isNull("1".equals(is_have),Structattr::getStoragevehicle_code) - .isNotNull("2".equals(is_have),Structattr::getStoragevehicle_code) - .orderByAsc(Structattr::getStruct_code) - ); - + public IPage queryAll(StructattrQuery whereJson, PageQuery page) { + page.setSort("struct_code,asc"); + Page structPage = this.page(page.build(), whereJson.build()); + return structPage; } @Override @@ -430,7 +412,7 @@ public class StructattrServiceImpl extends ServiceImpl groupPlates = iMdPbGroupplateService.list(new QueryWrapper() .eq("storagevehicle_code", changeDto.getStoragevehicleCode()) - .lt("status", IOSEnum.GROUP_PLATE_STATUS.code("出库"))); + .eq("status", IOSEnum.GROUP_PLATE_STATUS.code("入库"))); List records = new ArrayList<>(); //更新冻结数量 Structattr structattr = this.getByCode(changeDto.getStructCode()); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java index 80e8990..90ec0d4 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/RawAssistIStorController.java @@ -83,7 +83,7 @@ public class RawAssistIStorController { @PostMapping("/unDivStruct") @Log("取消分配货位") - public ResponseEntity unDivStruct(@RequestBody Map whereJson) { + public ResponseEntity unDivStruct(@RequestBody JSONObject whereJson) { iRawAssistIStorService.unDivStruct(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java index b567307..6d0d50a 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java @@ -3,6 +3,7 @@ package org.nl.wms.warehouse_management.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.ibatis.annotations.Param; import org.nl.common.domain.query.PageQuery; import org.nl.wms.warehouse_management.service.dao.GroupPlate; @@ -48,4 +49,8 @@ public interface IMdPbGroupplateService extends IService { * } */ void updateIvt(List updateIvtList); + + + List getVehicleMaterial(@Param("params") Map whereJson); + } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java index 183f509..76e1750 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IRawAssistIStorService.java @@ -42,7 +42,7 @@ public interface IRawAssistIStorService extends IService { - void unDivStruct(Map whereJson); + void unDivStruct(JSONObject whereJson); void divPoint(Map whereJson); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml index 9d69d34..3175f54 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/IOStorInvDisMapper.xml @@ -45,6 +45,7 @@ LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id LEFT JOIN sch_base_task task ON task.task_id = dis.task_id LEFT JOIN md_pb_groupplate ext ON ext.storagevehicle_code = dis.storagevehicle_code + and dis.material_id = ext.material_id and ext.pcsn=dis.pcsn where 1=1 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java index d2d9117..0729e83 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java @@ -65,4 +65,10 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl getVehicleMaterial(Map whereJson) { + List vehicleMaterial = this.baseMapper.getVehicleMaterial(whereJson); + return vehicleMaterial; + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index 484e494..d77d9ff 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -55,6 +55,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; +import java.util.stream.Collectors; /** * @author dsh @@ -328,12 +329,15 @@ public class RawAssistIStorServiceImpl extends ServiceImpl rows = (ArrayList) param.get("tableMater"); JSONObject mst = JSONObject.parseObject(JSON.toJSONString(param)); - HashMap map = rows.get(0); + JSONObject map = param.getJSONObject("dis_row"); + String iostorinvId = map.getString("iostorinv_id"); + String storagevehicleCode = map.getString("storagevehicle_code"); //判断该分配明细是否已经分配货位 - IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class) - .eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id")) + List disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class) + .eq(IOStorInvDis::getIostorinv_id, iostorinvId) + .eq(IOStorInvDis::getStoragevehicle_code, storagevehicleCode) .isNull(IOStorInvDis::getStruct_code)); - if (ioStorInvDis ==null){ + if (CollectionUtils.isEmpty(disList)) { throw new BadRequestException("当前明细已经分配过库位"); } String currentUserId = SecurityUtils.getCurrentUserId(); @@ -361,22 +365,16 @@ public class RawAssistIStorServiceImpl extends ServiceImpl(MdPbStoragevehicleinfo.class) .eq(MdPbStoragevehicleinfo::getStoragevehicle_code, map.get("storagevehicle_code")) ); - //判断仓位的长高宽是否能放下载具 - // if (structattr.getWidth() < 0 && - // structattr.getHeight() < 0 && - // structattr.getZdepth() < 0) { - // throw new BadRequestException("载具不符合,请检查!"); - // } - sect_id = map.get("sect_id"); - sect_code = map.get("sect_code"); - sect_name = map.get("sect_name"); - struct_id = map.get("struct_id"); - struct_code = map.get("struct_code"); - struct_name = map.get("struct_name"); + sect_id = map.getString("sect_id"); + sect_code = map.getString("sect_code"); + sect_name = map.getString("sect_name"); + struct_id = map.getString("struct_id"); + struct_code = map.getString("struct_code"); + struct_name = map.getString("struct_name"); } JSONObject dis_map = new JSONObject(); dis_map.put("sect_id", sect_id); @@ -386,7 +384,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl dtlCollect = disList.stream().map(IOStorInvDis::getIostorinvdtl_id).collect(Collectors.toList()); + List dtls = ioStorInvDtlMapper.selectList(new LambdaQueryWrapper().in(IOStorInvDtl::getIostorinvdtl_id, dtlCollect)); + for (IOStorInvDtl dtl : dtls) { + int disQtySum = disList.stream().filter(dis -> dis.getIostorinvdtl_id().equals(dtl.getIostorinvdtl_id())).mapToInt(value -> value.getPlan_qty().intValue()).sum(); + dtl.setAssign_qty(dtl.getAssign_qty().add(BigDecimal.valueOf(disQtySum))); + dtl.setUnassign_qty(dtl.getPlan_qty().subtract(dtl.getAssign_qty())); + dtl.setBill_status(dtl.getUnassign_qty().compareTo(BigDecimal.valueOf(0)) > 0 ? IOSEnum.BILL_STATUS.code("分配中") : IOSEnum.BILL_STATUS.code("分配完")); + ioStorInvDtlMapper.updateById(dtl); + } int disCount = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) .eq(IOStorInvDis::getIostorinv_id, map.get("iostorinv_id")) .and(wrapper -> wrapper.isNull(IOStorInvDis::getStruct_code).or().eq(IOStorInvDis::getStruct_code, ""))); // 根据分配货位情况 更新主表单据状态 IOStorInv ios = new IOStorInv(); - ios.setIostorinv_id(map.get("iostorinv_id")); + ios.setIostorinv_id(map.getString("iostorinv_id")); ios.setUpdate_optid(currentUserId); ios.setUpdate_optname(nickName); ios.setUpdate_time(now); @@ -461,14 +463,12 @@ public class RawAssistIStorServiceImpl extends ServiceImpl rows = (ArrayList) whereJson.get("tableMater"); - HashMap jo = rows.get(0); + JSONObject jo = whereJson.getJSONObject("dis_row"); //解锁原货位点位 JSONObject unlock_map = new JSONObject(); @@ -476,39 +476,51 @@ public class RawAssistIStorServiceImpl extends ServiceImpl(IOStorInvDis.class) - .set(IOStorInvDis::getSect_id,null) - .set(IOStorInvDis::getSect_code,null) - .set(IOStorInvDis::getSect_name,null) - .set(IOStorInvDis::getStruct_id,null) - .set(IOStorInvDis::getStruct_code,null) - .set(IOStorInvDis::getStruct_name,null) - .eq(IOStorInvDis::getIostorinvdis_id,jo.get("iostorinvdis_id")) + ioStorInvDisMapper.update(new IOStorInvDis(), new LambdaUpdateWrapper<>(IOStorInvDis.class) + .set(IOStorInvDis::getSect_id, null) + .set(IOStorInvDis::getSect_code, null) + .set(IOStorInvDis::getSect_name, null) + .set(IOStorInvDis::getStruct_id, null) + .set(IOStorInvDis::getStruct_code, null) + .set(IOStorInvDis::getStruct_name, null) + .eq(IOStorInvDis::getIostorinv_id, jo.get("iostorinv_id")) + .eq(IOStorInvDis::getStoragevehicle_code, jo.get("storagevehicle_code")) ); - //维护单据明细表里 分配数量 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("iostorinvdtl_id",jo.get("iostorinvdtl_id")); - jsonObject.put("bill_status",IOSEnum.BILL_STATUS.code("生成")); - jsonObject.put("assign_qty","0"); - jsonObject.put("unassign_qty",jo.get("plan_qty")); - ioStorInvDtlMapper.updateById(jsonObject.toJavaObject(IOStorInvDtl.class)); + //更新组盘表状态 + mdPbGroupplateService.update(new LambdaUpdateWrapper() + .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + .eq(GroupPlate::getStoragevehicle_code, jo.get("storagevehicle_code")) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库"))); + + List disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper().eq(IOStorInvDis::getIostorinv_id, jo.get("iostorinv_id")) + .eq(IOStorInvDis::getStoragevehicle_code, jo.get("storagevehicle_code"))); + //维护单据明细表里分配数量 + List dtlCollect = disList.stream().map(IOStorInvDis::getIostorinvdtl_id).collect(Collectors.toList()); + List dtls = ioStorInvDtlMapper.selectList(new LambdaQueryWrapper().in(IOStorInvDtl::getIostorinvdtl_id, dtlCollect)); + for (IOStorInvDtl dtl : dtls) { + int disQtySum = disList.stream().filter(dis -> dis.getIostorinvdtl_id().equals(dtl.getIostorinvdtl_id())).mapToInt(value -> value.getPlan_qty().intValue()).sum(); + dtl.setAssign_qty(dtl.getAssign_qty().subtract(BigDecimal.valueOf(disQtySum))); + dtl.setUnassign_qty(dtl.getPlan_qty().subtract(dtl.getAssign_qty())); + dtl.setBill_status(dtl.getUnassign_qty().compareTo(dtl.getPlan_qty()) == 0 ? IOSEnum.BILL_STATUS.code("生成") : IOSEnum.BILL_STATUS.code("分配中")); + ioStorInvDtlMapper.updateById(dtl); + } //根据单据标识判断分配明细是否都已经分配完成 int disCount = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) - .eq(IOStorInvDis::getIostorinv_id,jo.get("iostorinv_id")) - .and(wrapper -> wrapper.isNotNull(IOStorInvDis::getStruct_code).or().ne(IOStorInvDis::getStruct_code,""))); + .eq(IOStorInvDis::getIostorinv_id, jo.get("iostorinv_id")) + .and(wrapper -> wrapper.isNotNull(IOStorInvDis::getStruct_code).or().ne(IOStorInvDis::getStruct_code, ""))); // 根据分配货位情况 更新主表单据状态 IOStorInv ios = new IOStorInv(); - ios.setIostorinv_id(jo.get("iostorinv_id")); + ios.setIostorinv_id(jo.getString("iostorinv_id")); ios.setUpdate_optid(currentUserId); ios.setUpdate_optname(nickName); ios.setUpdate_time(now); - ios.setBill_status(disCount>0 ? IOSEnum.BILL_STATUS.code("分配中") : IOSEnum.BILL_STATUS.code("生成")); + ios.setBill_status(disCount > 0 ? IOSEnum.BILL_STATUS.code("分配中") : IOSEnum.BILL_STATUS.code("生成")); ioStorInvMapper.updateById(ios); } @@ -520,24 +532,20 @@ public class RawAssistIStorServiceImpl extends ServiceImpl map = rows.get(0); //判断是否已经分配好货位 - IOStorInvDis ioStorInvDis = ioStorInvDisMapper.selectOne(new LambdaQueryWrapper<>(IOStorInvDis.class) - .eq(IOStorInvDis::getIostorinvdis_id,map.get("iostorinvdis_id")) - .and(wrapper -> wrapper.isNotNull(IOStorInvDis::getStruct_code).or().ne(IOStorInvDis::getStruct_code,""))); - if (ObjectUtil.isEmpty(ioStorInvDis)){ + List ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class) + .eq(IOStorInvDis::getIostorinv_id, map.get("iostorinv_id")) + .eq(IOStorInvDis::getStoragevehicle_code, map.get("storagevehicle_code")) + .and(wrapper -> wrapper.isNotNull(IOStorInvDis::getStruct_code).or().ne(IOStorInvDis::getStruct_code, ""))); + if (CollectionUtils.isEmpty(ioStorInvDis)) { throw new BadRequestException("该明细还没分配货位,请先分配货位"); } - //创建任务 JSONObject task_form = new JSONObject(); task_form.put("task_type", "STInTask"); task_form.put("TaskCode", CodeUtil.getNewCode("TASK_CODE")); task_form.put("point_code1", point_code); - task_form.put("point_code2", ioStorInvDis.getStruct_code()); + task_form.put("point_code2", ioStorInvDis.get(0).getStruct_code()); task_form.put("vehicle_code", map.get("storagevehicle_code")); - // GroupPlate groupPlate = mdPbGroupplateMapper.selectOne(new LambdaQueryWrapper<>(GroupPlate.class) - // .eq(GroupPlate::getStoragevehicle_code,map.get("storagevehicle_code")) - // ); - // task_form.put("group_id", groupPlate.getGroup_id()); StInTask stInTask = SpringContextHolder.getBean("STInTask"); String task_id = stInTask.create(task_form); @@ -549,7 +557,15 @@ public class RawAssistIStorServiceImpl extends ServiceImpl(IOStorInvDis.class) + .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("生成")) + .set(IOStorInvDis::getTask_id, task_id) + .set(IOStorInvDis::getIs_issued, BaseDataEnum.IS_YES_NOT.code("是")) + .set(IOStorInvDis::getPoint_code, point_code) + .eq(IOStorInvDis::getIostorinv_id, map.get("iostorinv_id")) + .eq(IOStorInvDis::getStoragevehicle_code, map.get("storagevehicle_code")) + .ne(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成"))); } @Override @@ -636,74 +652,64 @@ public class RawAssistIStorServiceImpl extends ServiceImpl(IOStorInvDis.class) - .eq(IOStorInvDis::getTask_id,task.getTask_id()) + List ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class) + .eq(IOStorInvDis::getTask_id, task.getTask_id()) ); - if (ObjectUtil.isEmpty(ioStorInvDis)){ + if (CollectionUtils.isEmpty(ioStorInvDis)) { throw new BadRequestException("未找到任务对应的分配明细"); } - - // 完成当前分配明细 - ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class) - .set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成")) - .set(IOStorInvDis::getReal_qty,ioStorInvDis.getPlan_qty()) - .eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id()) - ); - + String iostorinvId = ioStorInvDis.get(0).getIostorinv_id(); + String storagevehicleCode = ioStorInvDis.get(0).getStoragevehicle_code(); + String structCode = ioStorInvDis.get(0).getStruct_code(); //解锁库位 JSONObject finish_map = new JSONObject(); - finish_map.put("struct_code",ioStorInvDis.getStruct_code()); - finish_map.put("storagevehicle_code",ioStorInvDis.getStoragevehicle_code()); + finish_map.put("struct_code", structCode); + finish_map.put("storagevehicle_code", storagevehicleCode); finish_map.put("inv_type", null); finish_map.put("inv_id", null); finish_map.put("inv_code", null); - iStructattrService.updateStatusByCode("1",finish_map); -//库存变动 + iStructattrService.updateStatusByCode("1", finish_map); + //库存变动 StructattrChangeDto changeDto = StructattrChangeDto.builder() - .inv(ioStorInvDis.getIostorinv_id()) - .storagevehicleCode(ioStorInvDis.getStoragevehicle_code()) - .structCode(ioStorInvDis.getStruct_code()).taskType(task.getConfig_code()).inBound(true).build(); + .inv(iostorinvId) + .storagevehicleCode(storagevehicleCode) + .structCode(structCode).taskType(task.getConfig_code()).inBound(true).build(); iStructattrService.changeStruct(changeDto); - // 查询该明细下是否还有未完成的分配明细 - int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) - .eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id()) - .ne(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成")) - ); - - // 明细 - IOStorInvDtl ioStorInvDtl = ioStorInvDtlMapper.selectById(ioStorInvDis.getIostorinvdtl_id()); - if (ObjectUtil.isEmpty(ioStorInvDtl)){ - throw new BadRequestException("未找到明细"); + // 完成当前分配明细 + Map dtlMap = new HashMap<>(); + for (IOStorInvDis item : ioStorInvDis) { + ioStorInvDisMapper.update(item, new LambdaUpdateWrapper<>(IOStorInvDis.class) + .set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成")) + .set(IOStorInvDis::getReal_qty, item.getPlan_qty()) + .eq(IOStorInvDis::getIostorinvdis_id, item.getIostorinvdis_id())); + dtlMap.put(item.getIostorinvdtl_id(), item.getPlan_qty()); } - // 如果分配明细全部完成则更新明细表状态 - if (countDis == 0){ - // 更新明细表状态 - ioStorInvDtl.setReal_qty(ioStorInvDis.getPlan_qty()); - ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - ioStorInvDtlMapper.updateById(ioStorInvDtl); - - // 查看明细是否全部完成 - int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) - .eq(IOStorInvDtl::getIostorinv_id,ioStorInvDtl.getIostorinv_id()) - .ne(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("完成")) + //更新明细 + for (String dtl_id : dtlMap.keySet()) { + IOStorInvDtl invDtl = new IOStorInvDtl(); + invDtl.setIostorinvdtl_id(dtl_id); + invDtl.setReal_qty(dtlMap.get(dtl_id)); + invDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); + ioStorInvDtlMapper.updateById(invDtl); + } + // 查看明细是否全部完成 + int countDtl = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) + .eq(IOStorInvDtl::getIostorinv_id, iostorinvId) + .ne(IOStorInvDtl::getBill_status, IOSEnum.BILL_STATUS.code("完成")) + ); + // 如果明细全部完成则更新主表状态 + if (countDtl == 0) { + //更新主表状态 + ioStorInvMapper.update(new IOStorInv(), new LambdaUpdateWrapper<>(IOStorInv.class) + .set(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成")) + .set(IOStorInv::getConfirm_optid, currentUserId) + .set(IOStorInv::getConfirm_optname, nickName) + .set(IOStorInv::getConfirm_time, now) + .eq(IOStorInv::getIostorinv_id, iostorinvId) ); - - // 如果明细全部完成则更新主表状态 - if (countDtl == 0){ - //更新主表状态 - ioStorInvMapper.update(new IOStorInv(),new LambdaUpdateWrapper<>(IOStorInv.class) - .set(IOStorInv::getBill_status,IOSEnum.BILL_STATUS.code("完成")) - .set(IOStorInv::getConfirm_optid,currentUserId) - .set(IOStorInv::getConfirm_optname,nickName) - .set(IOStorInv::getConfirm_time,now) - .eq(IOStorInv::getIostorinv_id,ioStorInvDtl.getIostorinv_id()) - ); - } } } diff --git a/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue b/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue new file mode 100644 index 0000000..c169475 --- /dev/null +++ b/nladmin-ui/src/views/wms/basedata/group/AddDialog.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/basedata/group/group.js b/nladmin-ui/src/views/wms/basedata/group/group.js index e927e8f..bcbfae5 100644 --- a/nladmin-ui/src/views/wms/basedata/group/group.js +++ b/nladmin-ui/src/views/wms/basedata/group/group.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function getAllGroupInfo(data) { + return request({ + url: 'api/group/getAllGroupInfo', + method: 'post', + data + }) +} + +export default { add, edit, del, getAllGroupInfo } diff --git a/nladmin-ui/src/views/wms/basedata/group/index.vue b/nladmin-ui/src/views/wms/basedata/group/index.vue index cd63353..6caec84 100644 --- a/nladmin-ui/src/views/wms/basedata/group/index.vue +++ b/nladmin-ui/src/views/wms/basedata/group/index.vue @@ -2,62 +2,62 @@
- - - 物料查询: - - - - 批次查询: - - - - 载具编码: - - - - 组盘状态: - - + + 物料查询: + - - - - - - + + + 批次查询: + + + + 载具编码: + + + + 组盘状态: + + + + + + + + @@ -179,6 +179,8 @@
+ +
@@ -190,6 +192,7 @@ import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import rrOperation from '@crud/RR.operation' import MaterialDialog from '@/views/wms/basedata/material/MaterialDialog' +import AddDialog from '@/views/wms/basedata/group/AddDialog' const defaultForm = { group_id: null, @@ -211,7 +214,7 @@ const defaultForm = { } export default { name: 'Group', - components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation }, + components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation, AddDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], tableEnums: ['md_pb_measureunit#unit_name#measure_unit_id'], // 数据字典 @@ -243,6 +246,9 @@ export default { [CRUD.HOOK.beforeRefresh]() { return true }, + querytable() { + this.crud.toQuery() + }, formattStatus(row) { return this.dict.label.GROUP_STATUS[row.status] }, diff --git a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue index 8aa54ff..83fa4e1 100644 --- a/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue +++ b/nladmin-ui/src/views/wms/basedata/storagevehicleinfo/index.vue @@ -15,9 +15,11 @@ - + + @@ -42,8 +45,114 @@ - + + + 打印 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
- - +
+ + - - + + - - + + + + + + + + + + + @@ -83,7 +204,8 @@ @@ -131,50 +253,53 @@ - - + + +