From c731084698d89c12c23180f57598d521abb97a23 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 12 五月 2025 14:15:32 +0800 Subject: [PATCH] 质检功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java | 37 +++++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 2 rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml | 26 ++++ rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx | 10 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 6 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java | 179 +++++++++++++---------------- rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java | 7 + rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java | 3 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java | 10 + rsf-admin/src/i18n/zh.js | 2 rsf-admin/.env | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderWorkType.java | 60 +++++---- rsf-server/src/main/resources/application-dev.yml | 2 14 files changed, 202 insertions(+), 146 deletions(-) diff --git a/rsf-admin/.env b/rsf-admin/.env index a0bb09f..6801446 100644 --- a/rsf-admin/.env +++ b/rsf-admin/.env @@ -1,3 +1,3 @@ -VITE_BASE_IP=192.168.4.50 +VITE_BASE_IP=192.168.4.56 # VITE_BASE_IP=47.76.147.249 VITE_BASE_PORT=8080 diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js index df68657..ac97dbf 100644 --- a/rsf-admin/src/i18n/zh.js +++ b/rsf-admin/src/i18n/zh.js @@ -482,7 +482,7 @@ dlyQty: "閫佽揣鏁伴噺", disQty: "涓嶅悎鏁伴噺", safeQty: "鍚堟牸鏁伴噺", - anfme: '鏁伴噺', + anfme: '宸叉鏁伴噺', picPath: "鍥剧墖璺緞", trackCode: "鏉″舰鐮�", }, diff --git a/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx b/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx index 627a035..260b97e 100644 --- a/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx +++ b/rsf-admin/src/page/orders/qlyInspect/InspectModal.jsx @@ -80,7 +80,7 @@ const getData = async () => { - const res = await request.post(`/qlyIsptItem/page`, { ispectId, isptStatus: '0' }); + const res = await request.post(`/qlyIsptItem/ispts/page`, { ispectId }); if (res?.data?.code === 200) { const data = res.data.data.records.map(item => { return { @@ -221,10 +221,10 @@ ), }, - { - field: 'isptResult', headerName: translate('table.field.qlyIsptItem.isptResult'), width: 150, type: 'singleSelect', - editable: true, valueOptions: [{ value: '1', label: '鍚堟牸' }, { value: '2', label: '涓嶅悎鏍�' }, { value: '3', label: '寰呭畾' }, { value: '4', label: '閮ㄥ垎鍚堟牸' }], - }, + // { + // field: 'isptResult', headerName: translate('table.field.qlyIsptItem.isptResult'), width: 150, type: 'singleSelect', + // editable: true, valueOptions: [{ value: '1', label: '鍚堟牸' }, { value: '2', label: '涓嶅悎鏍�' }, { value: '3', label: '寰呭畾' }, { value: '4', label: '閮ㄥ垎鍚堟牸' }], + // }, ]) const processRowUpdate = (newRow, oldRow) => { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java index 0c8f53a..5ef37c3 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java @@ -225,7 +225,7 @@ if (Objects.isNull(params) || params.isEmpty()) { return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - return mobileService.checkUpdate(params); + return mobileService.checkUpdate(params, getLoginUserId()); } @ApiOperation("鑾峰彇涓婃灦淇℃伅") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java index b76d370..5d45a84 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java @@ -49,7 +49,7 @@ R checkObjs(CheckObjParams params); - R checkUpdate(List<QlyIsptItem> params); + R checkUpdate(List<QlyIsptItem> params, Long loginUserId); R operateToStock(OpStockParams params); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index d97176c..70094d9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; @@ -630,16 +629,17 @@ * 蹇�熻川妫� * * @param params + * @param loginUserId * @return */ @Override - public R checkUpdate(List<QlyIsptItem> params) { + public R checkUpdate(List<QlyIsptItem> params, Long loginUserId) { if (Objects.isNull(params) || params.isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } IsptItemsParams itemsParams = new IsptItemsParams(); itemsParams.setIsptItem(params).setType("0"); - if (qlyIsptItemService.batchUpdate(itemsParams)) { + if (qlyIsptItemService.batchUpdate(itemsParams, loginUserId)) { return R.ok(); } else { return R.error("淇濆瓨澶辫触锛侊紒"); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java index 4c16acb..eac0cb9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java @@ -48,7 +48,8 @@ "sys_user_role", "sys_role_menu", "sys_menu", - "man_loc_type_rela" + "man_loc_type_rela", + "man_qly_inspect_result" ).contains(tableName); } }; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java index 9c71c5c..c9b90c3 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyIsptItemController.java @@ -1,6 +1,8 @@ package com.vincent.rsf.server.manager.controller; 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.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; @@ -12,8 +14,6 @@ import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.FieldsUtils; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; -import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; -import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.vincent.rsf.server.manager.service.QlyIsptItemService; import com.vincent.rsf.server.system.controller.BaseController; @@ -38,9 +38,9 @@ public R page(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<QlyIsptItem, BaseParam> pageParam = new PageParam<>(baseParam, QlyIsptItem.class); - + QueryWrapper<QlyIsptItem> queryWrapper = pageParam.buildWrapper(true); /**鎷兼帴鎵╁睍瀛楁*/ - PageParam<QlyIsptItem, BaseParam> page = qlyIsptItemService.page(pageParam, pageParam.buildWrapper(true)); + PageParam<QlyIsptItem, BaseParam> page = qlyIsptItemService.page(pageParam, queryWrapper); List<QlyIsptItem> records = page.getRecords(); for (QlyIsptItem record : records) { if (!Objects.isNull(record.getFieldsIndex())) { @@ -51,6 +51,33 @@ page.setRecords(records); return R.ok(page); + } + + /** + * @author Ryan + * @date 2025/5/12 + * @description: 鑾峰彇璐ㄦ淇℃伅淇敼 + * @version 1.0 + */ + @PreAuthorize("hasAuthority('manager:qlyIsptItem:list')") + @PostMapping("/qlyIsptItem/ispts/page") + public R getQlyList(@RequestBody Map<String, Object> map) { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<QlyIsptItem, BaseParam> pageParam = new PageParam<>(baseParam, QlyIsptItem.class); + QueryWrapper<QlyIsptItem> queryWrapper = pageParam.buildWrapper(true); + IPage<QlyIsptItem> page = qlyIsptItemService.pageByWrapper(pageParam, queryWrapper); + List<QlyIsptItem> records = page.getRecords(); + for (QlyIsptItem record : records) { + if (!Objects.isNull(record.getFieldsIndex())) { + Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex()); + record.setExtendFields(fields); + } + } + page.setRecords(records); + + return R.ok(page); + + } @PreAuthorize("hasAuthority('manager:qlyIsptItem:list')") @@ -134,7 +161,7 @@ if (Objects.isNull(params)) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - if (qlyIsptItemService.batchUpdate(params)) { + if (qlyIsptItemService.batchUpdate(params, getLoginUserId())) { return R.ok("淇敼鎴愬姛锛侊紒"); } else { return R.error("淇敼澶辫触锛侊紒"); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderWorkType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderWorkType.java index b871cc7..2f6b32b 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderWorkType.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/OrderWorkType.java @@ -9,14 +9,16 @@ */ public enum OrderWorkType { //璁㈠崟绫诲瀷 - ORDER_WORK_TYPE_DONE_IN("1", "瀹屽伐鍏ュ簱鍗�"), - ORDER_WORK_TYPE_PROD("2", "鐢熶骇棰嗘枡鍗�"), - ORDER_WORK_TYPE_PURCHASE("3", "澶栬喘鏀惰揣"), - ORDER_WORK_TYPE_SALE("4", "閿�鍞鍗�"), - ORDER_WORK_TYPE_RETURN("5", "鐢熶骇閫�鏂欏崟"), - ORDER_WORK_TYPE_SUPPLIER("6", "閫�璐т緵搴斿晢鍑鸿揣鍗�"), - ORDER_WORK_TYPE_RETURN_ORDER("7", "閿�鍞��璐у叆搴撳崟") - ; + ORDER_WORK_TYPE_DONE_IN("1", "閲囪喘鍏ュ簱鍗�"), + ORDER_WORK_TYPE_PROD("2", "鐢熶骇鍏ュ簱鍗�"), + ORDER_WORK_TYPE_PURCHASE("3", "棰嗘枡閫�鍥炲叆搴撳崟"), + ORDER_WORK_TYPE_SALE("4", "閿�鍞��鍥炲叆搴撳崟"), + ORDER_WORK_TYPE_RETURN("5", "鍏跺畠鍏ュ簱鍗�"), + ORDER_WORK_TYPE_SUPPLIER("11", "閿�鍞嚭搴撳崟"), + ORDER_WORK_TYPE_RETURN_ORDER("12", "棰嗘枡鍑哄簱鍗�"), + ORDER_WORK_TYPE_PURCHASE_RETURN("13", "閲囪喘閫�鍥炲嚭搴撳崟"), + ORDER_WORK_TYPE_OTHER("14", "鍏跺畠鍑哄簱鍗�"); + OrderWorkType(String type, String desc) { this.type = type; @@ -27,22 +29,26 @@ public String desc; public static String getWorkType(String desc) { - if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type; - } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_PROD.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_PROD.type; - } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type; - } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_SALE.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_SALE.type; - } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_RETURN.type; - } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.type; - }else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.desc)) { - return OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type; - } - return null; + if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_PROD.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_PROD.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_SALE.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_SALE.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_RETURN.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type; + } else if (desc.equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.desc)) { + return OrderWorkType.ORDER_WORK_TYPE_OTHER.type; + } + return null; } public static String getWorkDesc(String type) { @@ -58,8 +64,12 @@ return OrderWorkType.ORDER_WORK_TYPE_RETURN.desc; } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.type)) { return OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.desc; - }else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) { + } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) { return OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.desc; + }else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) { + return OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.desc; + } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) { + return OrderWorkType.ORDER_WORK_TYPE_OTHER.desc; } return null; } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java index 909aebf..c57c2c9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java @@ -1,12 +1,19 @@ package com.vincent.rsf.server.manager.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.vincent.rsf.server.common.domain.BaseParam; +import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @Mapper @Repository public interface QlyIsptItemMapper extends BaseMapper<QlyIsptItem> { + IPage<QlyIsptItem> pageByWrapper(PageParam<QlyIsptItem, BaseParam> pageParam, @Param(Constants.WRAPPER) QueryWrapper<QlyIsptItem> queryWrapper); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java index 16fbb26..14be580 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java @@ -1,12 +1,16 @@ package com.vincent.rsf.server.manager.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.server.common.domain.BaseParam; +import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; -import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; import com.vincent.rsf.server.manager.entity.QlyIsptItem; public interface QlyIsptItemService extends IService<QlyIsptItem> { - boolean batchUpdate(IsptItemsParams params); + boolean batchUpdate(IsptItemsParams params, Long loginUserId); + + IPage<QlyIsptItem> pageByWrapper(PageParam<QlyIsptItem, BaseParam> pageParam, QueryWrapper<QlyIsptItem> queryWrapper); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java index 287576c..cfcbd2c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java @@ -1,16 +1,16 @@ package com.vincent.rsf.server.manager.service.impl; 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.vincent.rsf.framework.common.R; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.vincent.rsf.framework.exception.CoolException; +import com.vincent.rsf.server.common.domain.BaseParam; +import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.IsptItemsParams; -import com.vincent.rsf.server.manager.controller.params.QlyInspectAndItem; -import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.QlyInspect; import com.vincent.rsf.server.manager.entity.QlyInspectResult; import com.vincent.rsf.server.manager.enums.QlyIsptResult; -import com.vincent.rsf.server.manager.enums.QlyIsptStatus; import com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper; import com.vincent.rsf.server.manager.entity.QlyIsptItem; import com.vincent.rsf.server.manager.service.AsnOrderItemService; @@ -23,10 +23,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; import java.util.List; -import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; @Service("qlyIsptItemService") @@ -39,9 +38,12 @@ @Autowired private QlyInspectResultService qlyInspectResultService; + @Autowired + private QlyIsptItemService qlyIsptItemService; /** * @param + * @param loginUserId * @return * @author Ryan * @description 鎵归噺淇敼 @@ -49,7 +51,7 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public boolean batchUpdate(IsptItemsParams params) { + public boolean batchUpdate(IsptItemsParams params, Long loginUserId) { if (Objects.isNull(params.getIsptItem()) || params.getIsptItem().isEmpty()) { throw new CoolException("ID涓嶈兘涓虹┖锛侊紒"); } @@ -61,111 +63,90 @@ throw new CoolException("鏁版嵁閿欒锛氭槑缁嗕笉瀛樺湪锛侊紒"); } - for (QlyIsptItem item : isptItems) { + for (QlyIsptItem item : isptItem) { List<QlyInspectResult> results = qlyInspectResultService.list(new LambdaQueryWrapper<QlyInspectResult>() .eq(QlyInspectResult::getIsptId, item.getIspectId()) .eq(QlyInspectResult::getIsptItemId, item.getId())); if (!results.isEmpty()) { - //涓嶄负绌哄仛鏇存柊鎿嶄綔 - - - } else { - //涓虹┖鍋氭柊澧炴搷浣� - QlyInspectResult result = new QlyInspectResult(); - result.setIsptId(item.getIspectId()) - .setAnfme(item.getSafeQty()) - .setIsptItemId(item.getId()); - if (item.getDisQty().compareTo(0.00) < 1) { - continue; - } - result.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); - result.setAnfme(item.getDisQty()); - - if (!qlyInspectResultService.save(result)) { - throw new CoolException("璐ㄦ缁撹淇濆瓨澶辫触锛侊紒"); - } - - if (item.getSafeQty().compareTo(0.00) < 1) { - continue; - } - result.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val) - .setAnfme(item.getSafeQty()); - - if (!qlyInspectResultService.save(result)) { - throw new CoolException("璐ㄦ缁撹淇濆瓨澶辫触锛侊紒"); + if (!qlyInspectResultService.remove(new LambdaUpdateWrapper<QlyInspectResult>() + .eq(QlyInspectResult::getIsptItemId, item.getId()))) { + throw new CoolException("鍘嗗彶璐ㄦ缁撴灉绉诲嚭澶辫触锛侊紒"); } } - } + QlyInspectResult result = new QlyInspectResult(); + result.setIsptId(item.getIspectId()) + .setIsptItemId(item.getId()); + if (!Objects.isNull(item.getDisQty()) && item.getDisQty().compareTo(0.00) > 0) { + result.setAnfme(item.getDisQty()) + .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val); + qlyInspectResultService.saveOrUpdate(result); + } + result = new QlyInspectResult(); + result.setIsptId(item.getIspectId()) + .setIsptItemId(item.getId()); + if (!Objects.isNull(item.getSafeQty()) && item.getSafeQty().compareTo(0.00) > 0) { + result.setAnfme(item.getSafeQty()) + .setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); + qlyInspectResultService.saveOrUpdate(result); + } - if (Short.parseShort(params.getType()) == QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val || Short.parseShort(params.getType()) == QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val) { - //1锛氬悎鏍硷紝 2锛氫笉鍚堟牸, 0: 鍏跺畠锛堥粯璁わ級 - isptItem.forEach(item -> { - if (Short.parseShort(params.getType()) == QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val) { - //TODO 鍏堟崱鍚庢敹涓洪�佽揣鏁伴噺锛屽厛鏀跺悗鎹′负鏀惰揣鏁伴噺 -// item.setSafeQty(item.getDlyQty()); -// item.setDisQty(0.0); - } else { -// item.setSafeQty(0.0); -// item.setDisQty(item.getDlyQty()); - } - if (!this.update(new LambdaUpdateWrapper<QlyIsptItem>() -// .set(QlyIsptItem::getSafeQty, item.getSafeQty()) - .set(QlyIsptItem::getIsptResult, Short.parseShort(params.getType())) -// .set(QlyIsptItem::getDisQty, item.getDisQty()) - .in(QlyIsptItem::getId, item.getId()))) { - throw new CoolException("淇敼澶辫触锛侊紒"); - } - }); - } else { - if (!this.updateBatchById(isptItem)) { - throw new CoolException("鏄庣粏淇敼澶辫触"); + List<QlyInspectResult> isptRelt = qlyInspectResultService.list(new LambdaQueryWrapper<QlyInspectResult>() + .eq(QlyInspectResult::getIsptId, item.getIspectId()) + .eq(QlyInspectResult::getIsptItemId, item.getId())); + + Double isptQty = isptRelt.stream().mapToDouble(QlyInspectResult::getAnfme).sum(); + + if (!qlyIsptItemService.update(new LambdaUpdateWrapper<QlyIsptItem>() + .set(QlyIsptItem::getUpdateBy, loginUserId) + .set(QlyIsptItem::getAnfme, isptQty) + .eq(QlyIsptItem::getId, item.getId()))) { + throw new CoolException("鍗曟嵁鏄庣粏鏁伴噺淇敼澶辫触锛侊紒"); } } - Map<Long, List<QlyIsptItem>> listMap = isptItems.stream().collect(Collectors.groupingBy(QlyIsptItem::getIspectId)); - for (Long key : listMap.keySet()) { - QlyInspect inspect = qlyInspectService.getById(key); - List<QlyIsptItem> items = listMap.get(key); - items.forEach(qlyIsptItem -> { - AsnOrderItem orderItem = asnOrderItemService.getById(qlyIsptItem.getAsnItemId()); -// if (qlyIsptItem.getSafeQty().compareTo(orderItem.getAnfme()) >= 0.00) { -// orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val) -// .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val); -// } else if (qlyIsptItem.getSafeQty().compareTo(0.00) > 0.00 && qlyIsptItem.getSafeQty().compareTo(orderItem.getAnfme()) < 0.00) { -// orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_SECTION.val); -// if (Double.compare(qlyIsptItem.getSafeQty() + qlyIsptItem.getDisQty(), orderItem.getAnfme()) >= 0.00 ) { -// orderItem.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val); -// } else { -// orderItem.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val); -// } -// } else { -// orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val) -// .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val); -// } - - if (!asnOrderItemService.updateById(orderItem)) { - throw new CoolException("鏀惰揣鍗曟槑缁嗕慨鏀瑰け璐ワ紒锛�"); - } - }); -// Double safeQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum(); -// Double disQty = items.stream().mapToDouble(QlyIsptItem::getDisQty).sum(); -// Double qlyQty = safeQty + disQty; -// //瀹夊叏鏁伴噺锛岃川妫�鏁伴噺 -// inspect.setSafeQty(safeQty) -// .setIsptQty(qlyQty); -// if (Double.compare(disQty, 0) > 0) { -// inspect.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_SECTION.val); -// } -// if (Double.compare(safeQty, inspect.getDlyQty()) == 0) { -//// inspect.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val); -// inspect.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val); -// } - if (!qlyInspectService.updateById(inspect)) { - throw new CoolException("璐ㄦ鏁伴噺淇敼澶辫触锛侊紒"); - } + Set<Long> isptIds = isptItem.stream().map(QlyIsptItem::getIspectId).collect(Collectors.toSet()); + List<QlyInspectResult> items = qlyInspectResultService.list(new LambdaQueryWrapper<QlyInspectResult>().in(QlyInspectResult::getIsptId, isptIds)); + Double sum = items.stream().mapToDouble(QlyInspectResult::getAnfme).sum(); + if (sum.compareTo(0.00) > 0) { + qlyInspectService.update(new LambdaUpdateWrapper<QlyInspect>() + .set(QlyInspect::getIsptQty, sum) + .set(QlyInspect::getUpdateBy, loginUserId) + .eq(QlyInspect::getId, isptItem.stream().findFirst().get().getIspectId())); } + return true; } + + /** + * @author Ryan + * @date 2025/5/12 + * @description: 鑾峰彇鑷畾涔塒age + * @version 1.0 + */ + @Override + public IPage<QlyIsptItem> pageByWrapper(PageParam<QlyIsptItem, BaseParam> pageParam, QueryWrapper<QlyIsptItem> queryWrapper) { + IPage<QlyIsptItem> page = this.page(pageParam, queryWrapper); + if (!page.getRecords().isEmpty()) { + List<QlyIsptItem> records = page.getRecords(); + for (int i = 0; i < records.size(); i++) { + List<QlyInspectResult> results = qlyInspectResultService.list(new QueryWrapper<QlyInspectResult>() + .select("id, ispt_result, SUM(anfme) anfme, ispt_item_id, ispt_id") + .lambda() + .eq(QlyInspectResult::getIsptItemId, records.get(i).getId()).groupBy(QlyInspectResult::getIsptResult)); + if (!results.isEmpty()) { + for (QlyInspectResult result : results) { + if (result.getIsptResult() == QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val) { + records.get(i).setSafeQty(result.getAnfme()); + } else { + records.get(i).setDisQty(result.getAnfme()); + } + } + } + } + page.setRecords(records); + } + return page; + } } diff --git a/rsf-server/src/main/resources/application-dev.yml b/rsf-server/src/main/resources/application-dev.yml index 279bc21..efd3d05 100644 --- a/rsf-server/src/main/resources/application-dev.yml +++ b/rsf-server/src/main/resources/application-dev.yml @@ -14,7 +14,7 @@ driver-class-name: com.mysql.jdbc.Driver # url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root - url: jdbc:mysql://192.168.4.56:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai # username: rsf password: 34821015 type: com.alibaba.druid.pool.DruidDataSource diff --git a/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml index 8aae843..c7f7e4e 100644 --- a/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml +++ b/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml @@ -2,4 +2,30 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.vincent.rsf.server.manager.mapper.QlyIsptItemMapper"> + <select id="pageByWrapper" resultType="com.vincent.rsf.server.manager.entity.QlyIsptItem"> + SELECT * + FROM (SELECT qii.id, + ispect_id, + asn_item_id, + matnr_code, + maktx, + splr_name, + splr_batch, + qir.anfme, + qir.ispt_result, + rcpt_qty, + dly_qty, + track_code, + pic_path, + `status`, + deleted, + tenant_id, + create_by, + create_time, + update_by, + update_time, + memo + FROM man_qly_ispt_item qii + LEFT JOIN man_qly_inspect_result qir ON qii.id = qir.ispt_item_id) t ${ew.customSqlSegment} + </select> </mapper> -- Gitblit v1.9.1