diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java index 1df15b381..5c2b8e733 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -3,6 +3,7 @@ package org.nl.b_lms.pdm.subpackagerelation.controller; import java.util.Set; import java.util.Map; +import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.common.TableDataInfo; import org.springframework.web.bind.annotation.*; @@ -48,6 +49,31 @@ public class PdmBiSubpackagerelationController { } + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @GetMapping("/queryContainerization") + @Log("查询订单装箱信息") + public ResponseEntity queryContainerization(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSubpackagerelationService.queryContainerization(whereJson, page)), HttpStatus.OK); + } + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + */ + @GetMapping("/queryContainerNameBySaleOrder") + @Log("查询订单装箱信息") + public ResponseEntity queryContainerNameBySaleOrder(@RequestParam Map whereJson) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSubpackagerelationService.queryContainerNameBySaleOrder(whereJson)), HttpStatus.OK); + } + + /** * 新增数据 * @@ -76,6 +102,14 @@ public class PdmBiSubpackagerelationController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/updateEntityList") + @Log("子卷分配木箱规格") + //@SaCheckPermission("@el.check(updateEntityList)") + public ResponseEntity updateEntityList(@RequestBody JSONObject whereJson) { + pdmBiSubpackagerelationService.updateEntityList(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + /** * 删除数据 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java index 0b55ab7c1..6f9ccfdc8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java @@ -3,6 +3,7 @@ package org.nl.b_lms.pdm.subpackagerelation.dao; import java.math.BigDecimal; import java.io.Serializable; +import jdk.nashorn.internal.ir.annotations.Ignore; import lombok.*; import lombok.Data; import lombok.Builder; @@ -20,11 +21,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; * @since 2024-02-01 */ @Data -@Builder -@ToString -@AllArgsConstructor -@EqualsAndHashCode(callSuper = false) -@SuppressWarnings("serial") +@EqualsAndHashCode(callSuper = true) @TableName("pdm_bi_subpackagerelation") public class PdmBiSubpackagerelation extends Model { @@ -36,7 +33,7 @@ public class PdmBiSubpackagerelation extends Model { * 子卷包装标识 */ @TableId(value = "workorder_id", type = IdType.NONE) - private Long workorder_id; + private String workorder_id; /** @@ -186,7 +183,6 @@ public class PdmBiSubpackagerelation extends Model { /** * 创建时间 */ - @TableField(fill = FieldFill.INSERT) private String create_time; @@ -309,6 +305,11 @@ public class PdmBiSubpackagerelation extends Model { */ private String ext_code; + /** + * 木箱组 + */ + private String box_group; + /** * 获取主键值 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java index 2e1c77d0c..de347e5b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java @@ -1,8 +1,13 @@ package org.nl.b_lms.pdm.subpackagerelation.dao.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; +import java.util.Map; + /** * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)数据持久层 * {@code @Author:} gbx @@ -12,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface PdmBiSubpackagerelationMapper extends BaseMapper { + List selectGroupedSubPackageRelation(Page page, Map whereJson); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml index 6c542686c..c95b46bcd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml @@ -2,5 +2,19 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java index e10974569..988bb5607 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java @@ -22,7 +22,7 @@ public class PdmBiSubpackagerelationDto implements Serializable { /** * 子卷包装标识 */ - private Long workorder_id; + private String workorder_id; /** * 木箱唯一码 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index 51227c501..562e886b9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -1,13 +1,16 @@ package org.nl.b_lms.pdm.subpackagerelation.service; +import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; import java.util.Map; import java.util.Set; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; +import org.springframework.web.bind.annotation.RequestBody; /** @@ -29,6 +32,33 @@ public interface IpdmBiSubpackagerelationService extends IService queryAll(Map whereJson, PageQuery pageable); + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryContainerization(Map whereJson, PageQuery pageable); + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + * @return List + */ + List queryContainerNameBySaleOrder(Map whereJson); + + + /** + * 子卷分配木箱规格 + * + * @param whereJson 分配信息 + */ + void updateEntityList(@RequestBody JSONObject whereJson); + + /** * 创建 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 0143b6f05..81b88d157 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -1,6 +1,12 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONArray; +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.UpdateWrapper; +import org.apache.commons.collections4.MapUtils; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; @@ -13,8 +19,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; import javax.annotation.Resource; -import java.util.Map; -import java.util.Set; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** @@ -39,11 +46,85 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { + return pdmBiSubpackagerelationMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() .lambda()); } + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + */ + @Override + public IPage queryContainerization(Map whereJson, PageQuery pageable) { + IPage resultPage = new Page<>(pageable.getPage(), pageable.getSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (whereJson.containsKey("customer_description")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_description, whereJson.get("customer_description")); + } + if (whereJson.containsKey("sale_order_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getSale_order_name, whereJson.get("sale_order_name")); + } + if (whereJson.containsKey("customer_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_name, whereJson.get("customer_name")); + } + if (whereJson.containsKey("status")) { + if ("99".equals(whereJson.get("status"))) { + queryWrapper.eq(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } else { + queryWrapper.lt(PdmBiSubpackagerelation::getStatus, "99"); + } + } + queryWrapper.groupBy(PdmBiSubpackagerelation::getSale_order_name) + .orderByDesc(PdmBiSubpackagerelation::getCreate_time); + return pdmBiSubpackagerelationMapper.selectPage(resultPage, queryWrapper); + } + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + */ + @Override + public List queryContainerNameBySaleOrder(Map whereJson) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (whereJson.containsKey("customer_description")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_description, whereJson.get("customer_description")); + } + if (whereJson.containsKey("sale_order_name")) { + queryWrapper.eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.get("sale_order_name")); + } + if (whereJson.containsKey("customer_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_name, whereJson.get("customer_name")); + } + if (whereJson.containsKey("status")) { + if ("99".equals(whereJson.get("status"))) { + queryWrapper.eq(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } else { + queryWrapper.ge(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } + } + queryWrapper.orderByDesc(PdmBiSubpackagerelation::getBox_group); + List pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper.selectList(queryWrapper); + Map countByGroup = pdmBiSubpackagerelationList.stream() + .filter(item -> item.getBox_group() != null) + .collect(Collectors.groupingBy(PdmBiSubpackagerelation::getBox_group, Collectors.counting())); + pdmBiSubpackagerelationList.forEach(item -> { + if (item.getBox_group() != null) { + item.setQuanlity_in_box(BigDecimal.valueOf(countByGroup.getOrDefault(item.getBox_group(), null))); + } else { + item.setQuanlity_in_box(BigDecimal.ZERO); + item.setBox_group("0"); + } + }); + return pdmBiSubpackagerelationList; + } + + /** * 创建 * @@ -69,6 +150,36 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() + .map(PdmBiSubpackagerelation::getWorkorder_id) + .map(String::valueOf) + .collect(Collectors.toList()); + ; + if (entityList.isEmpty()) { + return; + } + List pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper + .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.getString("sale_order_name"))); + Integer maxBoxGroup = pdmBiSubpackagerelationList.stream() + .map(PdmBiSubpackagerelation::getBox_group) + .filter(Objects::nonNull) + .map(Integer::parseInt) + .max(Integer::compareTo) + .orElse(0) + 1; + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("box_type", whereJson.getString("checked")); + updateWrapper.set("box_group", maxBoxGroup); + updateWrapper.in("workorder_id", entityList); + pdmBiSubpackagerelationMapper.update(null, updateWrapper); + } + /** * 多选删除 @@ -89,11 +200,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl @@ -281,8 +282,7 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' -import crudUserStor, { getSect } from '@/views/wms/basedata/st/userStor/userStor' +import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' /* import checkoutbill from "@/api/wms/st/core/outbill/checkoutbill";*/ const defaultForm = { diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue new file mode 100644 index 000000000..b2c910040 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue new file mode 100644 index 000000000..f2417fa47 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue @@ -0,0 +1,183 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue new file mode 100644 index 000000000..d56249729 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js b/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js new file mode 100644 index 000000000..9ffb28d02 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/structattr', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/structattr/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/structattr', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js b/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js new file mode 100644 index 000000000..096920efe --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/subpackagerelation', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBiSubpackagerelation/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBiSubpackagerelation', + method: 'put', + data + }) +} + +export function queryContainerization(params) { + return request({ + url: '/api/pdmBiSubpackagerelation/queryContainerNameBySaleOrder', + method: 'get', + params + }) +} + +export function updateEntityList(data) { + return request({ + url: '/api/pdmBiSubpackagerelation/updateEntityList', + method: 'post', + data + }) +} + +export default { add, edit, del, queryContainerization, updateEntityList } diff --git a/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue b/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue index a25c4d06e..88e160c39 100644 --- a/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue @@ -71,7 +71,6 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudStructattr from '@/views/wms/basedata/st/struct/structattr' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' export default { diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue b/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue index 062b70d4a..0bf8bbab8 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue @@ -92,7 +92,7 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - + @@ -101,7 +101,7 @@ - + @@ -119,7 +119,6 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' import handmovestor from '@/views/wms/st/inStor/moveStor/handmovestor' diff --git a/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue index e7097c3d3..7c3d4934d 100644 --- a/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue @@ -203,11 +203,10 @@