From 16807e7a9b856a78abbfd80d7ec69e784d5127c7 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期五, 04 七月 2025 09:16:16 +0800 Subject: [PATCH] 检验方案 --- src/main/java/org/jeecg/modules/qms/controller/InspectionPlanController.java | 107 ++++++++++++++++++++++++-- src/main/java/org/jeecg/modules/qms/controller/InspectionItemController.java | 38 +++++++++ src/main/java/org/jeecg/modules/qms/service/IInspectionItemService.java | 2 src/main/java/org/jeecg/modules/qms/entity/InspectionPlan.java | 17 ++++ src/main/java/org/jeecg/modules/qms/mapper/xml/InspectionItemMapper.xml | 41 ++++++++++ src/main/java/org/jeecg/modules/qms/mapper/InspectionItemMapper.java | 2 src/main/java/org/jeecg/modules/qms/service/impl/InspectionItemServiceImpl.java | 17 ++++ 7 files changed, 214 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/jeecg/modules/qms/controller/InspectionItemController.java b/src/main/java/org/jeecg/modules/qms/controller/InspectionItemController.java index 1c38dc3..193ae13 100644 --- a/src/main/java/org/jeecg/modules/qms/controller/InspectionItemController.java +++ b/src/main/java/org/jeecg/modules/qms/controller/InspectionItemController.java @@ -237,4 +237,42 @@ return Result.OK(pageList); } + + /** + * 鏍规嵁妫�楠屾柟妗坕d鏌ヨ + * + * @param inspectionPlanId + * @param pageNo + * @param pageSize + * @return + */ + @ApiOperation(value="妫�楠岄」鐩�-鍒嗛〉鍒楄〃鏌ヨ", notes="妫�楠岄」鐩�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/queryListByPlanId") + public Result<?> queryListByPlanId(String inspectionPlanId, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + IPage<Map<String, Object>> pageList = inspectionItemService.queryListByPlanId(pageNo,pageSize, inspectionPlanId); + for(Map<String, Object> r : pageList.getRecords()){ + String inspectionTools = (String) r.get("inspectionTools"); + if(StringUtils.isNotBlank(inspectionTools)){ + List<String> inspectionToolsList = Arrays.asList(inspectionTools.split(",")); + List<String> inspectionToolsNameList = new ArrayList<>(); + String inspectionToolsNames = ""; + for(String inspectionTool : inspectionToolsList){ + InspectionTools inspectionTools1 = inspectionToolsService.getById(inspectionTool); + if(inspectionTools1 != null){ + inspectionToolsNameList.add(inspectionTools1.getToolName()); + } + } + inspectionToolsNames = inspectionToolsNameList.stream() + .collect(Collectors.joining(",")); + r.put("inspectionToolsNames",inspectionToolsNames); + + } + + } + + return Result.OK(pageList); + } + } diff --git a/src/main/java/org/jeecg/modules/qms/controller/InspectionPlanController.java b/src/main/java/org/jeecg/modules/qms/controller/InspectionPlanController.java index 764eac7..99bbb3b 100644 --- a/src/main/java/org/jeecg/modules/qms/controller/InspectionPlanController.java +++ b/src/main/java/org/jeecg/modules/qms/controller/InspectionPlanController.java @@ -1,20 +1,28 @@ package org.jeecg.modules.qms.controller; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.qms.entity.Defect; +import org.jeecg.modules.qms.entity.InspectionItem; import org.jeecg.modules.qms.entity.InspectionPlan; +import org.jeecg.modules.qms.entity.InspectionPlanItem; +import org.jeecg.modules.qms.service.IInspectionPlanItemService; import org.jeecg.modules.qms.service.IInspectionPlanService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -51,6 +59,9 @@ public class InspectionPlanController extends JeecgController<InspectionPlan, IInspectionPlanService> { @Autowired private IInspectionPlanService inspectionPlanService; + + @Autowired + private IInspectionPlanItemService inspectionPlanItemService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -77,31 +88,57 @@ /** * 娣诲姞 * - * @param inspectionPlan + * @param jSONObject * @return */ @AutoLog(value = "妫�楠屾柟妗�-娣诲姞") @ApiOperation(value="妫�楠屾柟妗�-娣诲姞", notes="妫�楠屾柟妗�-娣诲姞") - //@RequiresPermissions("org.jeecg.modules:qms_inspection_plan:add") @PostMapping(value = "/add") - public Result<String> add(@RequestBody InspectionPlan inspectionPlan) { + public Result<?> add(@RequestBody JSONObject jSONObject) { + InspectionPlan inspectionPlan = jSONObject.toJavaObject(InspectionPlan.class); inspectionPlan.setPlanStatus(CommonConstant.STATUS_1); + inspectionPlan.setPublishStatus(CommonConstant.STATUS_0); + inspectionPlan.setIsNewVersion("1"); + inspectionPlan.setVersion("V1"); inspectionPlanService.save(inspectionPlan); + //淇濆瓨妫�楠屾柟妗堟楠岄」鐩叧鑱斿叧绯� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InspectionPlanItem> inspectionPlanItemList = jsonArray.toJavaList(InspectionPlanItem.class); + for(int i = 0;i<inspectionPlanItemList.size();i++){ + InspectionPlanItem inspectionPlanItem = inspectionPlanItemList.get(i); + inspectionPlanItem.setItemId(inspectionPlanItem.getId()); + inspectionPlanItem.setId(null); + inspectionPlanItem.setPlanId(inspectionPlan.getId()); + } + inspectionPlanItemService.saveBatch(inspectionPlanItemList); return Result.OK("娣诲姞鎴愬姛锛�"); } /** * 缂栬緫 * - * @param inspectionPlan + * @param jSONObject * @return */ @AutoLog(value = "妫�楠屾柟妗�-缂栬緫") @ApiOperation(value="妫�楠屾柟妗�-缂栬緫", notes="妫�楠屾柟妗�-缂栬緫") - //@RequiresPermissions("org.jeecg.modules:qms_inspection_plan:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result<String> edit(@RequestBody InspectionPlan inspectionPlan) { + public Result<?> edit(@RequestBody JSONObject jSONObject) { + InspectionPlan inspectionPlan = jSONObject.toJavaObject(InspectionPlan.class); + inspectionPlan.setPlanStatus(CommonConstant.STATUS_1); inspectionPlanService.updateById(inspectionPlan); + //鍒犻櫎鍘熷叧鑱斿叧绯� + inspectionPlanItemService.removeBatchByIds(inspectionPlanItemService.lambdaQuery().eq(InspectionPlanItem::getPlanId,inspectionPlan.getId()).list()); + //淇濆瓨妫�楠屾柟妗堟楠岄」鐩叧鑱斿叧绯� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InspectionPlanItem> inspectionPlanItemList = jsonArray.toJavaList(InspectionPlanItem.class); + for(int i = 0;i<inspectionPlanItemList.size();i++){ + InspectionPlanItem inspectionPlanItem = inspectionPlanItemList.get(i); + inspectionPlanItem.setPlanId(inspectionPlan.getId()); + inspectionPlanItem.setItemId(inspectionPlanItem.getId()); + inspectionPlanItem.setId(null); + } + inspectionPlanItemService.saveBatch(inspectionPlanItemList); return Result.OK("缂栬緫鎴愬姛!"); } @@ -117,6 +154,8 @@ @DeleteMapping(value = "/delete") public Result<String> delete(@RequestParam(name="id",required=true) String id) { inspectionPlanService.removeById(id); + //鍒犻櫎鍏宠仈鍏崇郴 + inspectionPlanItemService.removeBatchByIds(inspectionPlanItemService.lambdaQuery().eq(InspectionPlanItem::getPlanId,id).list()); return Result.OK("鍒犻櫎鎴愬姛!"); } @@ -191,4 +230,54 @@ return Result.ok("鎿嶄綔鎴愬姛锛�"); } + @AutoLog(value = "妫�楠屾柟妗�-鍙戝竷") + @ApiOperation(value = "妫�楠屾柟妗�-鍙戝竷", notes = "妫�楠屾柟妗�-鍙戝竷") + @PutMapping(value = "/publish") + public Result<?> publish(@RequestParam(name = "id", required = true) String id) { + InspectionPlan inspectionPlan = inspectionPlanService.getById(id); + if (CommonConstant.STATUS_1.equals(inspectionPlan.getPublishStatus())) { + inspectionPlan.setPublishStatus(CommonConstant.STATUS_0); + } else { + inspectionPlan.setPublishStatus(CommonConstant.STATUS_1); + } + inspectionPlanService.updateById(inspectionPlan); + return Result.ok("鎿嶄綔鎴愬姛锛�"); + } + + @AutoLog(value = "妫�楠屾柟妗�-鍗囩増") + @ApiOperation(value = "妫�楠屾柟妗�-鍗囩増", notes = "妫�楠屾柟妗�-鍗囩増") + @PutMapping(value = "/version") + public Result<?> version(@RequestParam(name = "id", required = true) String id) { + InspectionPlan inspectionPlan = inspectionPlanService.getById(id); + //澶嶅埗褰撳墠妫�楠屾柟妗� + InspectionPlan newInspectionPlan = new InspectionPlan(); + BeanUtil.copyProperties(inspectionPlan,newInspectionPlan); + newInspectionPlan.setId(null); + newInspectionPlan.setPlanStatus(CommonConstant.STATUS_1); + newInspectionPlan.setPublishStatus(CommonConstant.STATUS_0); + newInspectionPlan.setCreateTime(new Date()); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + newInspectionPlan.setCreateBy(user.getUsername()); + //璁$畻鐗堟湰锛岀増鏈�+1 + String number = inspectionPlan.getVersion().substring(1); + BigDecimal newNumber = new BigDecimal(number).add(BigDecimal.ONE); + newInspectionPlan.setVersion("V"+newNumber); + newInspectionPlan.setIsNewVersion("1"); + inspectionPlanService.save(newInspectionPlan); + //澶嶅埗妫�楠屾柟妗堟楠岄」鐩� + List<InspectionPlanItem> inspectionPlanItemList = inspectionPlanItemService.lambdaQuery().eq(InspectionPlanItem::getPlanId,inspectionPlan.getId()).list(); + List<InspectionPlanItem> newInspectionPlanItemList = new ArrayList<>(); + newInspectionPlanItemList.addAll(inspectionPlanItemList); + for(InspectionPlanItem inspectionPlanItem : inspectionPlanItemList){ + inspectionPlanItem.setId(null); + inspectionPlanItem.setPlanId(newInspectionPlan.getId()); + } + inspectionPlanItemService.saveBatch(newInspectionPlanItemList); + //鏇存柊鍘熸楠屾柟妗堜负绂佺敤 + inspectionPlan.setPlanStatus(CommonConstant.STATUS_0); + inspectionPlan.setIsNewVersion("0"); + inspectionPlanService.updateById(inspectionPlan); + return Result.ok("鍗囩増鎴愬姛锛�"); + } + } diff --git a/src/main/java/org/jeecg/modules/qms/entity/InspectionPlan.java b/src/main/java/org/jeecg/modules/qms/entity/InspectionPlan.java index e98d3f6..e8abd2f 100644 --- a/src/main/java/org/jeecg/modules/qms/entity/InspectionPlan.java +++ b/src/main/java/org/jeecg/modules/qms/entity/InspectionPlan.java @@ -77,7 +77,23 @@ /**鏂规鐘舵��*/ @Excel(name = "鏂规鐘舵��", width = 15) @ApiModelProperty(value = "鏂规鐘舵��") + @Dict(dicCode = "plan_status") private String planStatus; + + /**鏂规鍙戝竷鐘舵��*/ + @Excel(name = "鏂规鍙戝竷鐘舵��", width = 15) + @ApiModelProperty(value = "鏂规鍙戝竷鐘舵��") + private String publishStatus; + + /**鏂规鐗堟湰*/ + @Excel(name = "鏂规鐗堟湰", width = 15) + @ApiModelProperty(value = "鏂规鐗堟湰") + private String version; + + /**鏄惁涓烘渶鏂扮増鏈�*/ + @Excel(name = "鏄惁涓烘渶鏂扮増鏈�", width = 15) + @ApiModelProperty(value = "鏄惁涓烘渶鏂扮増鏈�") + private String isNewVersion; /**鏂规鍒嗙被;棣栨銆佸贰妫�銆佸畬宸ユ*/ @Excel(name = "鏂规鍒嗙被;棣栨銆佸贰妫�銆佸畬宸ユ", width = 15) @ApiModelProperty(value = "鏂规鍒嗙被;棣栨銆佸贰妫�銆佸畬宸ユ") @@ -86,6 +102,7 @@ /**鎶芥牱瑙勫垯ID*/ @Excel(name = "鎶芥牱瑙勫垯ID", width = 15) @ApiModelProperty(value = "鎶芥牱瑙勫垯ID") + @Dict(dictTable = "qms_sampling_rules",dicCode = "id",dicText = "rule_name") private String ruleId; /**鏂规鎻忚堪*/ @Excel(name = "鏂规鎻忚堪", width = 15) diff --git a/src/main/java/org/jeecg/modules/qms/mapper/InspectionItemMapper.java b/src/main/java/org/jeecg/modules/qms/mapper/InspectionItemMapper.java index 7530ed4..37bd6a3 100644 --- a/src/main/java/org/jeecg/modules/qms/mapper/InspectionItemMapper.java +++ b/src/main/java/org/jeecg/modules/qms/mapper/InspectionItemMapper.java @@ -19,4 +19,6 @@ public interface InspectionItemMapper extends BaseMapper<InspectionItem> { public IPage<Map<String, Object>> queryList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper); + + public IPage<Map<String, Object>> queryListByPlanId(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper); } diff --git a/src/main/java/org/jeecg/modules/qms/mapper/xml/InspectionItemMapper.xml b/src/main/java/org/jeecg/modules/qms/mapper/xml/InspectionItemMapper.xml index bf9049b..582c252 100644 --- a/src/main/java/org/jeecg/modules/qms/mapper/xml/InspectionItemMapper.xml +++ b/src/main/java/org/jeecg/modules/qms/mapper/xml/InspectionItemMapper.xml @@ -15,11 +15,50 @@ t1.create_time createTime, t2.item_text itemCategoryName, t3.item_text qualitativeOrQuantitativeName, - t1.remark + t1.remark, + t4.sorter, + t4.standard_value standardValue, + t4.max_value 'maxValue', + t4.min_value 'minValue', + t4.plan_id planId FROM qms_inspection_item t1 + left join qms_inspection_plan_item t4 on t4.item_id = t1.id LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'item_category' ) t2 ON t2.item_value = t1.item_category left join ( SELECT * FROM v_sys_dict WHERE dict_code = 'qualitative_or_quantitative' ) t3 on t3.item_value = t1.qualitative_or_quantitative ${ew.customSqlSegment} </select> + + + <select id="queryListByPlanId" resultType="map" parameterType="String"> + SELECT + t1.id, + t1.item_code itemCode, + t1.item_name itemName, + t1.item_category itemCategory, + t1.qualitative_or_quantitative qualitativeOrQuantitative, + t1.inspection_tools inspectionTools, + t1.item_status itemStatus, + t1.create_time createTime, + t2.sorter, + t2.standard_value standardValue, + t2.min_value 'minValue', + t2.max_value 'maxValue', + t3.plan_code planCode, + t3.plan_name planName, + t3.material_number materialNumber, + t3.material_name materialName, + t6.item_text planCategoryName, + t4.item_text itemCategoryName, + t5.item_text qualitativeOrQuantitativeName, + t1.remark + FROM + qms_inspection_item t1 + INNER JOIN qms_inspection_plan_item t2 ON t2.item_id = t1.id + INNER JOIN qms_inspection_plan t3 ON t3.id = t2.plan_id + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'item_category' ) t4 ON t4.item_value = t1.item_category + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'qualitative_or_quantitative' ) t5 ON t5.item_value = t1.qualitative_or_quantitative + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'plan_category' ) t6 ON t6.item_value = t3.plan_category + ${ew.customSqlSegment} + </select> </mapper> \ No newline at end of file diff --git a/src/main/java/org/jeecg/modules/qms/service/IInspectionItemService.java b/src/main/java/org/jeecg/modules/qms/service/IInspectionItemService.java index 3d0d3e4..e8b9fac 100644 --- a/src/main/java/org/jeecg/modules/qms/service/IInspectionItemService.java +++ b/src/main/java/org/jeecg/modules/qms/service/IInspectionItemService.java @@ -15,4 +15,6 @@ public interface IInspectionItemService extends IService<InspectionItem> { IPage<Map<String, Object>> queryList(Integer pageNo, Integer pageSize, Map<String, String> query); + + IPage<Map<String, Object>> queryListByPlanId(Integer pageNo, Integer pageSize, String inspectionPlanId); } diff --git a/src/main/java/org/jeecg/modules/qms/service/impl/InspectionItemServiceImpl.java b/src/main/java/org/jeecg/modules/qms/service/impl/InspectionItemServiceImpl.java index b851290..25994e4 100644 --- a/src/main/java/org/jeecg/modules/qms/service/impl/InspectionItemServiceImpl.java +++ b/src/main/java/org/jeecg/modules/qms/service/impl/InspectionItemServiceImpl.java @@ -51,4 +51,21 @@ } return super.getBaseMapper().queryList(pageData,queryWrapper); } + + @Override + public IPage<Map<String, Object>> queryListByPlanId(Integer pageNo, Integer pageSize, String inspectionPlanId) { + if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) { + ExceptionCast.cast("鍙傛暟閿欒"); + } + IPage<Map> pageData = new Page<Map>(pageNo, pageSize); + QueryWrapper<Map> queryWrapper = Wrappers.query(); + if (null != inspectionPlanId) { + queryWrapper.eq("t2.plan_id", inspectionPlanId); + // 鎺掑簭鍐欐硶 + List<OrderItem> orderItems = new ArrayList<>(); + orderItems.add(OrderItem.desc("t2.sorter")); + ((Page<Map>) pageData).setOrders(orderItems); + } + return super.getBaseMapper().queryListByPlanId(pageData,queryWrapper); + } } -- Gitblit v1.9.3