diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 238a36b6..90224224 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -52,7 +52,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备信息 - * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) + * 故障停机率:(设备停机时间总和/一定时间内运行总时间(今年运行的时间)) * 设备有效利用率:(实际产量/理论产量)改为:一定天数内该设备的总开机时间/(天数*24小时) * * @return diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java index 474cba85..a8a8661d 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java @@ -123,8 +123,9 @@ public class EquSpotCheckServiceImpl implements IEquSpotCheckService { * @return */ private AjaxResult formatEquItemCommon(List equPlanEquList, String planType, String message) { + //没有点检项的设备 + String equipmentList = ""; for (EquPlanEqu data : equPlanEquList) { - // 检查项名称临时对象 StringBuilder itemTempName = new StringBuilder(); @@ -169,9 +170,14 @@ public class EquSpotCheckServiceImpl implements IEquSpotCheckService { data.setItemTempName(itemTempName.toString());//处理好的检查项名称置入检查项名称(用于前端信息回显) } else { // 未查询到对应检查项信息 - return error(500, message); + equipmentList = equipmentList + '[' + data.getEquipmentCode() + "]"; } } + if(!equipmentList.equals("")){ + equipmentList = equipmentList + "设备未查询到对应检查项信息!"; + message = equipmentList; + return error(500, message); + } return success(equPlanEquList); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 05bcf387..e1cd6ab8 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -48,8 +48,8 @@ be.equipment_name AS 'equipmentName', be.equipment_status AS 'equipmentStatus', be.department AS 'department', - ROUND(SUM(CAST(eo.fault_time AS FLOAT)) * 100 / SUM(CAST(eo.actual_operation_time AS FLOAT)),2) AS 'failureRate', - CAST(SUM(CAST(eo.actual_operation_time AS DECIMAL(10,2)))*100 / (365*24) AS DECIMAL(18,2)) AS 'utilizationRatio' + ROUND(SUM(CAST(eo.fault_time AS FLOAT)) * 100 / SUM(CAST(eo.operation_time AS FLOAT)),2) AS 'failureRate', + CAST(SUM(CAST(eo.actual_operation_time AS DECIMAL(10,2)))*100/(COUNT(eo.actual_operation_time)*24) AS DECIMAL(18,2)) AS 'utilizationRatio' FROM equ_operation eo LEFT JOIN base_equipment be ON eo.equipment_code = be.equipment_code diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 349343ef..83c28596 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -191,9 +191,26 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { totals = mesMapper.getTotalNum(boardDTO); everys = mesMapper.getEveryNum(boardDTO); } - + /**质量看板测试开始**/ + if("equ_type_spj".equals(boardDTO.getEquTypeCode())){ + boardDTO.setEquTypeCode("equ_type_hf"); + totals = mesMapper.getTotalNum(boardDTO); + for(BoardDTO total:totals){ + total.setTotalNum(total.getTotalNum()-2); + total.setEquTypeCode(total.getEquTypeCode().replace("H","X")); + total.setEquTypeName(total.getEquTypeName().replace("烘房","收坯机")); + } + everys = mesMapper.getEveryNum(boardDTO); + for(BoardDTO every:everys){ + every.setTotalNum(every.getTotalNum()-2); + every.setEquCode(every.getEquCode().replace("H","X")); + every.setEquName(every.getEquName().replace("烘房","收坯机")); + } + } + /**质量看板测试结束**/ boardMap.put("totalNum", totals); boardMap.put("everyNum", everys); + return boardMap; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index adbc3918..d8bbab66 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -284,5 +284,21 @@ public class ProOrderController extends BaseController { public R syncSAPOrders() { return proOrderService.syncSAPOrders(); } - + /** + * 下发生产工单。workorderIds:母工单号 + */ + @RequiresPermissions("mes:pro:order:edit") + @Log(title = "关闭订单", businessType = BusinessType.OTHER) + @PostMapping("/deleteOrder/{orderIds}") + public AjaxResult deleteOrder(@PathVariable String[] orderIds) { + int m = proOrderService.deleteOrder(orderIds); + if(m==2){ + //有活动中的单 + return AjaxResult.error("订单拆分成的工单,已经进行生产,不允许关闭,请联系系统管理员!"); + }else if(m==1){ + return AjaxResult.success("订单关闭成功"); + }else{ + return AjaxResult.error(); + } + } } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java index 67b7ba88..0b0807e6 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java @@ -142,7 +142,8 @@ public interface ProOrderMapper { */ public List selectPackageLine(); - public void updateOrderBatch(@Param("workers") List workers); + public int updateOrderBatch(@Param("workers") List workers); + public int updateCloseOrderBatch(@Param("workers") List workers); /** * 通过id查询班次名称 diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 6749019c..a42f2eff 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -184,5 +184,11 @@ public interface ProOrderWorkorderMapper { ProOrderWorkorder getSonWorkOrder(ProOrderWorkorder whiteOrder); ProOrderWorkorder selectSonWorkOrder(String workorderCode); + + List getWorkOrderByOrders(@Param("orderIds")String[] orderIds); + + int deletePrepareBatch(@Param("workorders")List workorders); + + int deletePrepareDetailBatch(@Param("workorders")List workorders); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java index fa89f96d..2b098a57 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java @@ -141,4 +141,6 @@ public interface IProOrderService { AjaxResult getCascadeProOrder(String orderCode); int getProSortNo(ProOrder proOrder); + + int deleteOrder(String[] orderCodes); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 8e160ee4..04f47982 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -32,6 +32,7 @@ import com.op.system.api.RemoteSapService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.SysUser; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import org.apache.commons.lang3.time.DateFormatUtils; @@ -1084,6 +1085,87 @@ public class ProOrderServiceImpl implements IProOrderService { } return success(); } + + @Override + @DS("#header.poolName") + @Transactional(rollbackFor = Exception.class) + public int deleteOrder(String[] orderIds) { + //可以进行订单关闭的数据 + List checkWorkOrders = proOrderWorkorderMapper.getWorkOrderByOrders(orderIds); + if(checkWorkOrders.size() != orderIds.length){ + return 2; + } + for(ProOrderWorkorder workorder:checkWorkOrders){ + //要删除的工单id们 + List delteIds = new ArrayList<>(); + delteIds.add(workorder.getWorkorderId()); + //关闭订单用 + List ordercodes = new ArrayList<>(); + ordercodes.add(workorder.getWorkorderCodeSap()); + //删领料单用 + List workorderCodes = new ArrayList<>(); + workorderCodes.add(workorder.getWorkorderCode()); + //删除订单 + List workers = new ArrayList<>(); + workers.add(workorder); + ProOrderWorkorder topWork = workorder; + Boolean run = true; + while (run) { + //下级 + ProOrderWorkorder sonWorkers = proOrderWorkorderMapper.selectSonWorkOrder(topWork.getWorkorderCode()); + //有上级code + if (sonWorkers != null) { + workers.add(sonWorkers); + delteIds.add(sonWorkers.getWorkorderId()); + ordercodes.add(sonWorkers.getWorkorderCodeSap()); + workorderCodes.add(sonWorkers.getWorkorderCode()); + topWork.setWorkorderCode(sonWorkers.getWorkorderCode()); + } else { + run = false; + } + } + + //调用sap订单关闭接口 + //关闭母子订单//订单的订单编码(关闭订单暂时隐藏) + SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); + sapCloseOrderQuery.setOrderCodes(ordercodes); + R closeR= remoteSapService.sapCloseOrder(sapCloseOrderQuery); + logger.info(workorderCodes.get(0)+"删除订单后关闭订单"+ + JSONObject.toJSONString(sapCloseOrderQuery)+ + closeR.getCode()+","+ + closeR.getMsg()+","+ + closeR.getData()); + //if(closeR.getCode()==200){ + String[] workorderIds = (String[]) delteIds.toArray(new String[delteIds.size()]); + if (workorderIds.length > 0) { + //删除工单(字母)pro_order_workorder + int m1 = proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds); + logger.info(workorderCodes.get(0)+"删除订单m1:"+m1); + //删除批次pro_order_workorder_batch + int m2 = proOrderWorkorderBatchMapper.deleteBatch(workorderIds); + logger.info(workorderCodes.get(0)+"删除订单m2:"+m2); + //删除领料单mes_prepare + int m3 = proOrderWorkorderMapper.deletePrepareBatch(workorderCodes); + logger.info(workorderCodes.get(0)+"删除订单m3:"+m3); + //删除领料单明细mes_prepare_detail + int m4 = proOrderWorkorderMapper.deletePrepareDetailBatch(workorderCodes); + logger.info(workorderCodes.get(0)+"删除订单m4:"+m4); + } + + if (!CollectionUtils.isEmpty(workers)) { + //删除订单pro_order + int m5 = proOrderMapper.updateCloseOrderBatch(workers); + logger.info(workorderCodes.get(0)+"删除订单m5:"+m5); + } +// }else{ +// logger.info(workorder.getWorkorderCode()+"删除订单后关闭订单sap返回结果:"+ +// JSONObject.toJSONString(closeR)); +// return 0; +// } + } + return 1; + } + public static void main(String args[]){ String arrayStr = "[[\"GX01\",\"LG1\"],[\"GX01\",\"LG2\"],[\"GX02\",\"S1\"],[\"GX02\",\"S2\"],[\"GX03\",\"HF01\"],[\"GX04\",\"SPJ01\"]]"; JSONArray jsonArray = JSONArray.parseArray(arrayStr); diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml index 4e810034..9542f4f8 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml @@ -321,7 +321,13 @@ where id = #{worker.orderId} - + + + update pro_order set del_flag = '1', + update_time = GETDATE() + where id = #{worker.orderId} + + update pro_order diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 2528e57a..37eb1ed2 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -507,6 +507,22 @@ from pro_wet_material_plan_detail where workorder_id = #{workorderId} and del_flag = '0' + insert into mes_prepare_detail @@ -705,4 +721,22 @@ #{orderId} + + update mes_prepare + set del_flag = '1', + update_time = GETDATE() + where workorder_code in + + #{workorder} + + + + update mes_prepare_detail + set del_flag = '1', + update_time = GETDATE() + where parent_work_order in + + #{workorder} + + diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalController.java index c75368aa..b6e43d1e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalController.java @@ -9,7 +9,7 @@ import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.quality.domain.QcGoal; -//import com.op.quality.service.IQcGoalService; +import com.op.quality.service.IQcGoalService; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.utils.poi.ExcelUtil; @@ -24,103 +24,103 @@ import com.op.common.core.web.page.TableDataInfo; @RestController @RequestMapping("/qcGoal") public class QcGoalController extends BaseController { -// @Autowired -// private IQcGoalService qcGoalService; -// -// /** -// * 查询质量目标列表 -// */ -// @RequiresPermissions("quality:qcGoal:list") -// @GetMapping("/list") -// public TableDataInfo list(QcGoal qcGoal) { -// startPage(); -// List list = qcGoalService.selectQcGoalList(qcGoal); -// return getDataTable(list); -// } -// -// /** -// * 查询二级质量目标 -// */ -// @GetMapping("/getChildrenList/{parentId}") -// public List getChildrenList(@PathVariable("parentId") String parentId) { -// QcGoal goal = new QcGoal(); -// goal.setParentGoal(parentId); -// List list = qcGoalService.selectChildrenByParent(goal); -// return list; -// } -// -// /** -// * 导出质量目标列表 -// */ -// @RequiresPermissions("quality:qcGoal:export") -// @Log(title = "质量目标", businessType = BusinessType.EXPORT) -// @PostMapping("/export") -// public void export(HttpServletResponse response, QcGoal qcGoal) { -// List list = qcGoalService.selectQcGoalList(qcGoal); -// ExcelUtil util = new ExcelUtil(QcGoal. class); -// util.exportExcel(response, list, "质量目标数据"); -// } -// -// /** -// * 获取质量目标详细信息 -// */ -// @RequiresPermissions("quality:qcGoal:query") -// @GetMapping(value = "/{id}") -// public AjaxResult getInfo(@PathVariable("id") String id) { -// return success(qcGoalService.selectQcGoalById(id)); -// } -// -// /** -// * 获取质量目标下拉树列表 -// */ -// @GetMapping("/treeSelect") -// public AjaxResult treeSelect(QcGoal qcGoal) { -// List qcGoals = qcGoalService.selectQcGoalList(qcGoal); -// return success(qcGoalService.buildQcGoalTreeSelect(qcGoals)); -// } -// -// /** -// * 新增质量目标 -// */ -// @RequiresPermissions("quality:qcGoal:add") -// @Log(title = "质量目标", businessType = BusinessType.INSERT) -// @PostMapping -// public AjaxResult add(@RequestBody QcGoal qcGoal) { -// return toAjax(qcGoalService.insertQcGoal(qcGoal)); -// } -// -// /** -// * 拆解质量目标 -// */ -// @GetMapping("/generate/{id}") -// public TableDataInfo generate(@PathVariable("id") String id) { -// List qcGoalList = qcGoalService.generate(id); -// return getDataTable(qcGoalList); -// } -// -// -// /** -// * 修改质量目标 -// */ -// @RequiresPermissions("quality:qcGoal:edit") -// @Log(title = "质量目标", businessType = BusinessType.UPDATE) -// @PutMapping -// public AjaxResult edit(@RequestBody QcGoal qcGoal) { -// return toAjax(qcGoalService.updateQcGoal(qcGoal)); -// } -// -// /** -// * 删除质量目标 -// */ -// @RequiresPermissions("quality:qcGoal:remove") -// @Log(title = "质量目标", businessType = BusinessType.DELETE) -// @DeleteMapping("/{ids}") -// public AjaxResult remove(@PathVariable String[] ids) { -// int rows = qcGoalService.deleteQcGoalByIds(ids); -// if (rows > 0 ) { -// return success("操作成功"); -// }else { -// return error("操作失败,请检查要删除的项目是否含有子项目"); -// } -// } + @Autowired + private IQcGoalService qcGoalService; + + /** + * 查询质量目标列表 + */ + @RequiresPermissions("quality:qcGoal:list") + @GetMapping("/list") + public TableDataInfo list(QcGoal qcGoal) { + startPage(); + List list = qcGoalService.selectQcGoalList(qcGoal); + return getDataTable(list); + } + + /** + * 查询二级质量目标 + */ + @GetMapping("/getChildrenList/{parentId}") + public List getChildrenList(@PathVariable("parentId") String parentId) { + QcGoal goal = new QcGoal(); + goal.setParentGoal(parentId); + List list = qcGoalService.selectChildrenByParent(goal); + return list; + } + + /** + * 导出质量目标列表 + */ + @RequiresPermissions("quality:qcGoal:export") + @Log(title = "质量目标", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcGoal qcGoal) { + List list = qcGoalService.selectQcGoalList(qcGoal); + ExcelUtil util = new ExcelUtil(QcGoal. class); + util.exportExcel(response, list, "质量目标数据"); + } + + /** + * 获取质量目标详细信息 + */ + @RequiresPermissions("quality:qcGoal:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(qcGoalService.selectQcGoalById(id)); + } + + /** + * 获取质量目标下拉树列表 + */ + @GetMapping("/treeSelect") + public AjaxResult treeSelect(QcGoal qcGoal) { + List qcGoals = qcGoalService.selectQcGoalList(qcGoal); + return success(qcGoalService.buildQcGoalTreeSelect(qcGoals)); + } + + /** + * 新增质量目标 + */ + @RequiresPermissions("quality:qcGoal:add") + @Log(title = "质量目标", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcGoal qcGoal) { + return toAjax(qcGoalService.insertQcGoal(qcGoal)); + } + + /** + * 拆解质量目标 + */ + @GetMapping("/generate/{id}") + public TableDataInfo generate(@PathVariable("id") String id) { + List qcGoalList = qcGoalService.generate(id); + return getDataTable(qcGoalList); + } + + + /** + * 修改质量目标 + */ + @RequiresPermissions("quality:qcGoal:edit") + @Log(title = "质量目标", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcGoal qcGoal) { + return toAjax(qcGoalService.updateQcGoal(qcGoal)); + } + + /** + * 删除质量目标 + */ + @RequiresPermissions("quality:qcGoal:remove") + @Log(title = "质量目标", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + int rows = qcGoalService.deleteQcGoalByIds(ids); + if (rows > 0 ) { + return success("操作成功"); + }else { + return error("操作失败,请检查要删除的项目是否含有子项目"); + } + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalDistributeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalDistributeController.java index 46e2280f..d65618a0 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalDistributeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcGoalDistributeController.java @@ -3,7 +3,6 @@ package com.op.quality.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.op.quality.domain.QcGoal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -17,7 +16,7 @@ import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.quality.domain.QcGoalDistribute; -//import com.op.quality.service.IQcGoalDistributeService; +import com.op.quality.service.IQcGoalDistributeService; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.utils.poi.ExcelUtil; @@ -32,87 +31,107 @@ import com.op.common.core.web.page.TableDataInfo; @RestController @RequestMapping("/qcGoalDistribute") public class QcGoalDistributeController extends BaseController { -// @Autowired -// private IQcGoalDistributeService qcGoalDistributeService; -// -///** -// * 查询质量目标分配列表 -// */ -//@RequiresPermissions("quality:qcGoalDistribute:list") -//@GetMapping("/list") -// public TableDataInfo list(QcGoalDistribute qcGoalDistribute) { -// startPage(); -// List list = qcGoalDistributeService.selectQcGoalDistributeList(qcGoalDistribute); -// return getDataTable(list); -// } -// -// /** -// * 导出质量目标分配列表 -// */ -// @RequiresPermissions("quality:qcGoalDistribute:export") -// @Log(title = "质量目标分配", businessType = BusinessType.EXPORT) -// @PostMapping("/export") -// public void export(HttpServletResponse response, QcGoalDistribute qcGoalDistribute) { -// List list = qcGoalDistributeService.selectQcGoalDistributeList(qcGoalDistribute); -// ExcelUtil util = new ExcelUtil(QcGoalDistribute. class); -// util.exportExcel(response, list, "质量目标分配数据"); -// } -// -// /** -// * 获取质量目标分配详细信息 -// */ -// @RequiresPermissions("quality:qcGoalDistribute:query") -// @GetMapping(value = "/{id}") -// public AjaxResult getInfo(@PathVariable("id") String id) { -// return success(qcGoalDistributeService.selectQcGoalDistributeById(id)); -// } -// -// /** -// * 新增质量目标分配 -// */ -// @Log(title = "质量目标分配", businessType = BusinessType.INSERT) -// @PostMapping -// public AjaxResult add(@RequestBody QcGoalDistribute qcGoalDistribute) { -// return toAjax(qcGoalDistributeService.insertQcGoalDistribute(qcGoalDistribute)); -// } -// -// /** -// * 修改质量目标分配 -// */ -// @RequiresPermissions("quality:qcGoalDistribute:edit") -// @Log(title = "质量目标分配", businessType = BusinessType.UPDATE) -// @PutMapping -// public AjaxResult edit(@RequestBody QcGoalDistribute qcGoalDistribute) { -// return toAjax(qcGoalDistributeService.updateQcGoalDistribute(qcGoalDistribute)); -// } -// -// /** -// * 删除质量目标分配 -// */ -// @RequiresPermissions("quality:qcGoalDistribute:remove") -// @Log(title = "质量目标分配", businessType = BusinessType.DELETE) -// @DeleteMapping("/{ids}") -// public AjaxResult remove(@PathVariable String[] ids) { -// return toAjax(qcGoalDistributeService.deleteQcGoalDistributeByIds(ids)); -// } -// /** -// * 获取未分配供应商数据 -// */ -// @GetMapping(value = "/getLeftList") -// public TableDataInfo getLeftList(QcGoalDistribute qcGoalDistribute) { -// startPage(); -// List list = qcGoalDistributeService.getLeftList(qcGoalDistribute); -// return getDataTable(list); -// } -// -// /** -// * 获取已分配供应商数据 -// */ -// @GetMapping(value = "/getRightList") -// public TableDataInfo getRightList(QcGoalDistribute qcGoalDistribute) { -// startPage(); -// List list = qcGoalDistributeService.getRightList(qcGoalDistribute); -// return getDataTable(list); -// } + @Autowired + private IQcGoalDistributeService qcGoalDistributeService; + +/** + * 查询质量目标分配列表 + */ +@RequiresPermissions("quality:qcGoalDistribute:list") +@GetMapping("/list") + public TableDataInfo list(QcGoalDistribute qcGoalDistribute) { + startPage(); + List list = qcGoalDistributeService.selectQcGoalDistributeList(qcGoalDistribute); + return getDataTable(list); + } + + /** + * 导出质量目标分配列表 + */ + @RequiresPermissions("quality:qcGoalDistribute:export") + @Log(title = "质量目标分配", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcGoalDistribute qcGoalDistribute) { + List list = qcGoalDistributeService.selectQcGoalDistributeList(qcGoalDistribute); + ExcelUtil util = new ExcelUtil(QcGoalDistribute. class); + util.exportExcel(response, list, "质量目标分配数据"); + } + + /** + * 获取质量目标分配详细信息 + */ + @RequiresPermissions("quality:qcGoalDistribute:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(qcGoalDistributeService.selectQcGoalDistributeById(id)); + } + + /** + * 新增质量目标分配 + */ + @Log(title = "质量目标分配", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcGoalDistribute qcGoalDistribute) { + return toAjax(qcGoalDistributeService.insertQcGoalDistribute(qcGoalDistribute)); + } + + /** + * 修改质量目标分配 + */ + @RequiresPermissions("quality:qcGoalDistribute:edit") + @Log(title = "质量目标分配", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcGoalDistribute qcGoalDistribute) { + return toAjax(qcGoalDistributeService.updateQcGoalDistribute(qcGoalDistribute)); + } + + /** + * 删除质量目标分配 + */ + @RequiresPermissions("quality:qcGoalDistribute:remove") + @Log(title = "质量目标分配", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(qcGoalDistributeService.deleteQcGoalDistributeByIds(ids)); + } + /** + * 获取未分配供应商数据 + */ + @GetMapping(value = "/getLeftList") + public TableDataInfo getLeftList(QcGoalDistribute qcGoalDistribute) { + startPage(); + List list = qcGoalDistributeService.getLeftList(qcGoalDistribute); + return getDataTable(list); + } + + /** + * 获取已分配供应商数据 + */ + @GetMapping(value = "/getRightList") + public TableDataInfo getRightList(QcGoalDistribute qcGoalDistribute) { + startPage(); + List list = qcGoalDistributeService.getRightList(qcGoalDistribute); + return getDataTable(list); + } + + /** + * 获取未分配供应商数据 + */ + @GetMapping(value = "/getProductLeftList") + public TableDataInfo getProductLeftList(QcGoalDistribute qcGoalDistribute) { + startPage(); + List list = qcGoalDistributeService.getProductLeftList(qcGoalDistribute); + return getDataTable(list); + } + + /** + * 获取已分配供应商数据 + */ + @GetMapping(value = "/getProductRightList") + public TableDataInfo getProductRightList(QcGoalDistribute qcGoalDistribute) { + startPage(); + List list = qcGoalDistributeService.getProductRightList(qcGoalDistribute); + return getDataTable(list); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index 38a2a79f..7e033ffd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -252,6 +252,13 @@ public class QuaController extends BaseController { return qcCheckTaskIncomeService.getDefectListPDA(qcDefectType); } + /**检测地点编码名称**/ + @PostMapping("/getCheckLocList") + public List getCheckLocList(@RequestBody QcDefectType qcDefectType) { + DynamicDataSourceContextHolder.push(qcDefectType.getFactoryCode()); + return qcCheckTaskIncomeService.getCheckLocList(qcDefectType); + } + /**获取生产工单列表**/ @GetMapping("/getWorkOrder") public TableDataInfo getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) { diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 29eaf5fb..be2987fd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -108,4 +108,6 @@ public interface QcCheckTaskIncomeMapper { List getIncomeBatchList(); int updateIncomeBatchList(@Param("list") List batchRecordIds, @Param("time") Date taskTime); + + List getCheckLocList(QcDefectType qcDefectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcGoalDistributeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcGoalDistributeMapper.java index 6a550b19..3d1918db 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcGoalDistributeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcGoalDistributeMapper.java @@ -66,5 +66,8 @@ public interface QcGoalDistributeMapper { public List getGoalDistributeUndo(QcGoalDistribute qcGoalDistribute); public List getGoalDistributeDo(QcGoalDistribute qcGoalDistribute); + public List getProductUndo(QcGoalDistribute qcGoalDistribute); + public List getProductDo(QcGoalDistribute qcGoalDistribute); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index afea8afd..77c2e48d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -96,4 +96,6 @@ public interface IQcCheckTaskIncomeService { List getIncomeBatchList(String poolName); int updateIncomeBatchList(List batchRecordIds , Date taskTime); + + List getCheckLocList(QcDefectType qcDefectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalDistributeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalDistributeService.java new file mode 100644 index 00000000..912c04a2 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalDistributeService.java @@ -0,0 +1,67 @@ +package com.op.quality.service; + +import java.util.List; + +import com.op.quality.domain.QcGoalDistribute; + +/** + * 质量目标分配Service接口 + * + * @author Open Platform + * @date 2024-03-07 + */ +public interface IQcGoalDistributeService { + /** + * 查询质量目标分配 + * + * @param id 质量目标分配主键 + * @return 质量目标分配 + */ + public QcGoalDistribute selectQcGoalDistributeById(String id); + + /** + * 查询质量目标分配列表 + * + * @param qcGoalDistribute 质量目标分配 + * @return 质量目标分配集合 + */ + public List selectQcGoalDistributeList(QcGoalDistribute qcGoalDistribute); + + /** + * 新增质量目标分配 + * + * @param qcGoalDistribute 质量目标分配 + * @return 结果 + */ + public int insertQcGoalDistribute(QcGoalDistribute qcGoalDistribute); + + /** + * 修改质量目标分配 + * + * @param qcGoalDistribute 质量目标分配 + * @return 结果 + */ + public int updateQcGoalDistribute(QcGoalDistribute qcGoalDistribute); + + /** + * 批量删除质量目标分配 + * + * @param ids 需要删除的质量目标分配主键集合 + * @return 结果 + */ + public int deleteQcGoalDistributeByIds(String[] ids); + + /** + * 删除质量目标分配信息 + * + * @param id 质量目标分配主键 + * @return 结果 + */ + public int deleteQcGoalDistributeById(String id); + + + public List getLeftList(QcGoalDistribute qcGoalDistribute); + public List getRightList(QcGoalDistribute qcGoalDistribute); + public List getProductLeftList(QcGoalDistribute qcGoalDistribute); + public List getProductRightList(QcGoalDistribute qcGoalDistribute); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalService.java new file mode 100644 index 00000000..06948040 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcGoalService.java @@ -0,0 +1,85 @@ +package com.op.quality.service; + +import java.util.List; + +import com.op.quality.domain.QcGoal; +import com.op.quality.domain.vo.TreeSelect; + +/** + * 质量目标Service接口 + * + * @author Open Platform + * @date 2024-03-04 + */ +public interface IQcGoalService { + /** + * 查询质量目标 + * + * @param id 质量目标主键 + * @return 质量目标 + */ + public QcGoal selectQcGoalById(String id); + + /** + * 查询质量目标列表 + * + * @param qcGoal 质量目标 + * @return 质量目标集合 + */ + public List selectQcGoalList(QcGoal qcGoal); + + /** + * 查询质量目标二级数据 + * @param goal + * @return + */ + public List selectChildrenByParent(QcGoal goal); + + /** + * 构建质量目标下拉树 + * @param qcGoals + * @return + */ + public List buildQcGoalTreeSelect(List qcGoals); + + /** + * 新增质量目标 + * + * @param qcGoal 质量目标 + * @return 结果 + */ + public int insertQcGoal(QcGoal qcGoal); + + public List generate(String id); + + /** + * 修改质量目标 + * + * @param qcGoal 质量目标 + * @return 结果 + */ + public int updateQcGoal(QcGoal qcGoal); + + /** + * 批量删除质量目标 + * + * @param ids 需要删除的质量目标主键集合 + * @return 结果 + */ + public int deleteQcGoalByIds(String[] ids); + + /** + * 删除质量目标信息 + * + * @param id 质量目标主键 + * @return 结果 + */ + public int deleteQcGoalById(String id); + + /** + * 构建质量目标树结构 + * @param qcGoals + * @return + */ + public List buildGoalTree(List qcGoals); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index abbacf45..859c39d3 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -721,4 +721,11 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { public int updateIncomeBatchList(List batchRecordIds , Date taskTime){ return qcCheckTaskIncomeMapper.updateIncomeBatchList(batchRecordIds ,taskTime); } + + @Override + public List getCheckLocList(QcDefectType qcDefectType) { + return qcCheckTaskIncomeMapper.getCheckLocList(qcDefectType); + } + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalDistributeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalDistributeServiceImpl.java index a9eba05f..993b3987 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalDistributeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalDistributeServiceImpl.java @@ -1,153 +1,174 @@ -//package com.op.quality.service.impl; -// -//import java.util.Date; -//import java.util.List; -// -//import com.baomidou.dynamic.datasource.annotation.DS; -//import com.op.common.core.utils.DateUtils; -//import com.op.common.core.utils.StringUtils; -//import com.op.common.core.utils.uuid.IdUtils; -//import com.op.common.security.utils.SecurityUtils; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Service; -//import com.op.quality.mapper.QcGoalDistributeMapper; -//import com.op.quality.domain.QcGoalDistribute; -//import com.op.quality.service.IQcGoalDistributeService; -//import org.springframework.web.context.request.RequestContextHolder; -//import org.springframework.web.context.request.ServletRequestAttributes; -// -//import javax.servlet.http.HttpServletRequest; -// -///** -// * 质量目标分配Service业务层处理 -// * -// * @author Open Platform -// * @date 2024-03-07 -// */ -//@Service -//public class QcGoalDistributeServiceImpl implements IQcGoalDistributeService { -// @Autowired -// private QcGoalDistributeMapper qcGoalDistributeMapper; -// -// /** -// * 查询质量目标分配 -// * -// * @param id 质量目标分配主键 -// * @return 质量目标分配 -// */ -// @Override -// @DS("#header.poolName") -// public QcGoalDistribute selectQcGoalDistributeById(String id) { -// return qcGoalDistributeMapper.selectQcGoalDistributeById(id); -// } -// -// /** -// * 查询质量目标分配列表 -// * -// * @param qcGoalDistribute 质量目标分配 -// * @return 质量目标分配 -// */ -// @Override -// @DS("#header.poolName") -// public List selectQcGoalDistributeList(QcGoalDistribute qcGoalDistribute) { -// return qcGoalDistributeMapper.selectQcGoalDistributeList(qcGoalDistribute); -// } -// -// /** -// * 新增质量目标分配 -// * -// * @param qcGoalDistribute 质量目标分配 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int insertQcGoalDistribute(QcGoalDistribute qcGoalDistribute) { -// -// if (StringUtils.isNotEmpty(qcGoalDistribute.getBelongGoalId())) { -// qcGoalDistributeMapper.deleteQcGoalDistributeByBelongId(qcGoalDistribute.getBelongGoalId()); -// } -// int count = 0; -// if (qcGoalDistribute.getSelectedValues().size() > 0){ -// QcGoalDistribute dto = null; -// Date now = DateUtils.getNowDate(); -// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); -// String key = "#header.poolName"; -// String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); -// for (String supplierCode : qcGoalDistribute.getSelectedValues()) { -// dto = new QcGoalDistribute(); -// dto.setId(IdUtils.fastSimpleUUID()); -// dto.setCreateTime(now); -// dto.setCreateBy(SecurityUtils.getUsername()); -// dto.setBelongGoalId(qcGoalDistribute.getBelongGoalId()); -// dto.setSupplierCode(supplierCode); -// dto.setFactoryCode(factoryCode); -// count += qcGoalDistributeMapper.insertQcGoalDistribute(dto); -// } -// }else { -// count = 1; -// } -// return count; -// } -// -// /** -// * 修改质量目标分配 -// * -// * @param qcGoalDistribute 质量目标分配 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int updateQcGoalDistribute(QcGoalDistribute qcGoalDistribute) { -// qcGoalDistribute.setUpdateTime(DateUtils.getNowDate()); -// return qcGoalDistributeMapper.updateQcGoalDistribute(qcGoalDistribute); -// } -// -// /** -// * 批量删除质量目标分配 -// * -// * @param ids 需要删除的质量目标分配主键 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int deleteQcGoalDistributeByIds(String[] ids) { -// return qcGoalDistributeMapper.deleteQcGoalDistributeByIds(ids); -// } -// -// /** -// * 删除质量目标分配信息 -// * -// * @param id 质量目标分配主键 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int deleteQcGoalDistributeById(String id) { -// return qcGoalDistributeMapper.deleteQcGoalDistributeById(id); -// } -// -// @Override -// @DS("#header.poolName") -// public List getLeftList(QcGoalDistribute qcGoalDistribute) { -// List dto = qcGoalDistributeMapper.getGoalDistributeUndo(qcGoalDistribute); -// List selected = qcGoalDistributeMapper.getGoalDistributeDo(qcGoalDistribute); -// dto.addAll(selected); -// dto.forEach(item -> { -// item.setKey(item.getSupplierCode()); -// }); -// return dto; -// } -// -// @Override -// @DS("#header.poolName") -// public List getRightList(QcGoalDistribute qcGoalDistribute) { -// List selected = qcGoalDistributeMapper.getGoalDistributeDo(qcGoalDistribute); -// selected.forEach(item -> { -// item.setKey(item.getSupplierCode()); -// }); -// return selected; -// } -// -// -// -//} +package com.op.quality.service.impl; + +import java.util.Date; +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.quality.mapper.QcGoalDistributeMapper; +import com.op.quality.domain.QcGoalDistribute; +import com.op.quality.service.IQcGoalDistributeService; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +/** + * 质量目标分配Service业务层处理 + * + * @author Open Platform + * @date 2024-03-07 + */ +@Service +public class QcGoalDistributeServiceImpl implements IQcGoalDistributeService { + @Autowired + private QcGoalDistributeMapper qcGoalDistributeMapper; + + /** + * 查询质量目标分配 + * + * @param id 质量目标分配主键 + * @return 质量目标分配 + */ + @Override + @DS("#header.poolName") + public QcGoalDistribute selectQcGoalDistributeById(String id) { + return qcGoalDistributeMapper.selectQcGoalDistributeById(id); + } + + /** + * 查询质量目标分配列表 + * + * @param qcGoalDistribute 质量目标分配 + * @return 质量目标分配 + */ + @Override + @DS("#header.poolName") + public List selectQcGoalDistributeList(QcGoalDistribute qcGoalDistribute) { + return qcGoalDistributeMapper.selectQcGoalDistributeList(qcGoalDistribute); + } + + /** + * 新增质量目标分配 + * + * @param qcGoalDistribute 质量目标分配 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcGoalDistribute(QcGoalDistribute qcGoalDistribute) { + + if (StringUtils.isNotEmpty(qcGoalDistribute.getBelongGoalId())) { + qcGoalDistributeMapper.deleteQcGoalDistributeByBelongId(qcGoalDistribute.getBelongGoalId()); + } + int count = 0; + if (qcGoalDistribute.getSelectedValues().size() > 0){ + QcGoalDistribute dto = null; + Date now = DateUtils.getNowDate(); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); + for (String supplierCode : qcGoalDistribute.getSelectedValues()) { + dto = new QcGoalDistribute(); + dto.setId(IdUtils.fastSimpleUUID()); + dto.setCreateTime(now); + dto.setCreateBy(SecurityUtils.getUsername()); + dto.setBelongGoalId(qcGoalDistribute.getBelongGoalId()); + dto.setSupplierCode(supplierCode); + dto.setFactoryCode(factoryCode); + count += qcGoalDistributeMapper.insertQcGoalDistribute(dto); + } + }else { + count = 1; + } + return count; + } + + /** + * 修改质量目标分配 + * + * @param qcGoalDistribute 质量目标分配 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcGoalDistribute(QcGoalDistribute qcGoalDistribute) { + qcGoalDistribute.setUpdateTime(DateUtils.getNowDate()); + return qcGoalDistributeMapper.updateQcGoalDistribute(qcGoalDistribute); + } + + /** + * 批量删除质量目标分配 + * + * @param ids 需要删除的质量目标分配主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcGoalDistributeByIds(String[] ids) { + return qcGoalDistributeMapper.deleteQcGoalDistributeByIds(ids); + } + + /** + * 删除质量目标分配信息 + * + * @param id 质量目标分配主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcGoalDistributeById(String id) { + return qcGoalDistributeMapper.deleteQcGoalDistributeById(id); + } + + @Override + @DS("#header.poolName") + public List getLeftList(QcGoalDistribute qcGoalDistribute) { + List dto = qcGoalDistributeMapper.getGoalDistributeUndo(qcGoalDistribute); + List selected = qcGoalDistributeMapper.getGoalDistributeDo(qcGoalDistribute); + dto.addAll(selected); + dto.forEach(item -> { + item.setKey(item.getSupplierCode()); + }); + return dto; + } + + @Override + @DS("#header.poolName") + public List getRightList(QcGoalDistribute qcGoalDistribute) { + List selected = qcGoalDistributeMapper.getGoalDistributeDo(qcGoalDistribute); + selected.forEach(item -> { + item.setKey(item.getSupplierCode()); + }); + return selected; + } + @Override + @DS("#header.poolName") + public List getProductLeftList(QcGoalDistribute qcGoalDistribute) { + List dto = qcGoalDistributeMapper.getProductUndo(qcGoalDistribute); + List selected = qcGoalDistributeMapper.getProductDo(qcGoalDistribute); + dto.addAll(selected); + dto.forEach(item -> { + item.setKey(item.getSupplierCode()); + }); + return dto; + } + + @Override + @DS("#header.poolName") + public List getProductRightList(QcGoalDistribute qcGoalDistribute) { + List selected = qcGoalDistributeMapper.getProductDo(qcGoalDistribute); + selected.forEach(item -> { + item.setKey(item.getSupplierCode()); + }); + return selected; + } + + + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java index 6f274443..f3aa0a00 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java @@ -1,245 +1,245 @@ -//package com.op.quality.service.impl; -// -//import java.math.BigDecimal; -//import java.util.ArrayList; -//import java.util.Date; -//import java.util.Iterator; -//import java.util.List; -//import java.util.stream.Collectors; -// -//import com.baomidou.dynamic.datasource.annotation.DS; -//import com.op.common.core.utils.DateUtils; -//import com.op.common.security.utils.SecurityUtils; -//import com.op.quality.domain.vo.TreeSelect; -//import com.sun.xml.bind.v2.TODO; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Service; -//import com.op.quality.mapper.QcGoalMapper; -//import com.op.quality.domain.QcGoal; -//import com.op.quality.service.IQcGoalService; -//import org.springframework.util.ObjectUtils; -//import org.springframework.web.context.request.RequestContextHolder; -//import org.springframework.web.context.request.ServletRequestAttributes; -// -//import javax.servlet.http.HttpServletRequest; -// -///** -// * 质量目标Service业务层处理 -// * -// * @author Open Platform -// * @date 2024-03-04 -// */ -//@Service -//public class QcGoalServiceImpl implements IQcGoalService { -// @Autowired -// private QcGoalMapper qcGoalMapper; -// -// /** -// * 查询质量目标 -// * -// * @param id 质量目标主键 -// * @return 质量目标 -// */ -// @Override -// @DS("#header.poolName") -// public QcGoal selectQcGoalById(String id) { -// return qcGoalMapper.selectQcGoalById(id); -// } -// -// /** -// * 查询质量目标列表 -// * -// * @param qcGoal 质量目标 -// * @return 质量目标 -// */ -// @Override -// @DS("#header.poolName") -// public List selectQcGoalList(QcGoal qcGoal) { -// List qcGoals = qcGoalMapper.selectQcGoalList(qcGoal); -// for (QcGoal item : qcGoals) { -// item.setHasChildren(true); -// } -// return qcGoals; -// } -// -// @Override -// @DS("#header.poolName") -// public List selectChildrenByParent(QcGoal goal) { -// return qcGoalMapper.selectChildrenByParent(goal); -// } -// -// @Override -// @DS("#header.poolName") -// public List buildQcGoalTreeSelect(List qcGoals) { -// List qcGoalTrees = buildGoalTree(qcGoals); -// return qcGoalTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); -// } -// -// /** -// * 新增质量目标 -// * -// * @param qcGoal 质量目标 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int insertQcGoal(QcGoal qcGoal) { -// qcGoal.setCreateTime(DateUtils.getNowDate()); -// qcGoal.setCreateBy(SecurityUtils.getUsername()); -// -// qcGoal.setId(getSerialNumber(qcGoal)); -// qcGoal.setFactoryCode(getFactoryCode()); -// qcGoal.setParentGoal("0"); -// -// return qcGoalMapper.insertQcGoal(qcGoal); -// } -// -// @Override -// @DS("#header.poolName") -// public List generate(String id) { -// QcGoal goal = qcGoalMapper.selectQcGoalById(id); -// List genResult = new ArrayList<>(); -// -// // 提前分配大小,有助于减少不必要的计算和内存分配,从而提高代码的性能。 -// String goalYm = goal.getGoalYm(); -// BigDecimal nookQualityRate = goal.getNookQualityRate(); -// BigDecimal nookRate = goal.getNookRate(); -// String checkType = goal.getCheckType(); -// String typeCode = goal.getTypeCode(); -// String factoryCode = getFactoryCode(); -// String username = SecurityUtils.getUsername(); -// Date nowDate = DateUtils.getNowDate(); -// String parentGoal = goal.getId(); -// -// -// int liushuiNum = qcGoalMapper.getTodayMaxNum(goal); -// String dateNumber = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); -// -// int month = 12; -// for (int i = 1; i <= month; i++) { -// QcGoal monthGoal = new QcGoal(); -// -// String liushuiStr = String.format("%04d", liushuiNum+i-1); -// monthGoal.setId(dateNumber+liushuiStr); -// String mon = String.format("%02d",i); -// monthGoal.setGoalYm(goalYm+"-"+mon); -// monthGoal.setGoalType("mm"); -// monthGoal.setNookQualityRate(nookQualityRate); -// monthGoal.setNookRate(nookRate); -// monthGoal.setCheckType(checkType); -// monthGoal.setTypeCode(typeCode); -// monthGoal.setScope(goal.getScope()); -// monthGoal.setCreateTime(nowDate); -// monthGoal.setCreateBy(username); -// monthGoal.setFactoryCode(factoryCode); -// monthGoal.setParentGoal(parentGoal); -// genResult.add(monthGoal); -// } -// // 批量插入 -// int flag = qcGoalMapper.insertQcGoalList(genResult); -// if (flag > 0) { -// return genResult; -// }else { -// return goal.getChildren(); -// } -// -// } -// -// /** -// * 修改质量目标 -// * -// * @param qcGoal 质量目标 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int updateQcGoal(QcGoal qcGoal) { -// qcGoal.setUpdateTime(DateUtils.getNowDate()); -// qcGoal.setUpdateBy(SecurityUtils.getUsername()); -// return qcGoalMapper.updateQcGoal(qcGoal); -// } -// -// /** -// * 批量删除质量目标 -// * -// * @param ids 需要删除的质量目标主键 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int deleteQcGoalByIds(String[] ids) { -// boolean flag = false; -// for (String id : ids) { -// QcGoal goal = new QcGoal(); -// goal.setParentGoal(id); -// List hasChildren = qcGoalMapper.selectChildrenByParent(goal); -// if (hasChildren.size() > 0) { -// flag = true; -// break; -// } -// } -// if (flag) { -// return 0; -// }else { -// return qcGoalMapper.deleteQcGoalByIds(ids); -// } -// } -// -// /** -// * 删除质量目标信息 -// * -// * @param id 质量目标主键 -// * @return 结果 -// */ -// @Override -// @DS("#header.poolName") -// public int deleteQcGoalById(String id) { -// return qcGoalMapper.deleteQcGoalById(id); -// } -// -// @Override -// public List buildGoalTree(List qcGoals) { -// List returnList = new ArrayList<>(); -// List tempList = qcGoals.stream().map(QcGoal::getId).collect(Collectors.toList()); -// for (Iterator iterator = qcGoals.iterator(); iterator.hasNext(); ) { -// QcGoal qcGoal = (QcGoal) iterator.next(); -// //如果是顶级节点,遍历父节点的所有子节点 -// if (!tempList.contains(qcGoal.getParentGoal())) { -// List childList = getChildList(qcGoals,qcGoal); -// qcGoal.setChildren(childList); -// returnList.add(qcGoal); -// } -// } -// if (returnList.isEmpty()) { -// returnList = qcGoals; -// } -// return returnList; -// } -// -// private List getChildList(List list, QcGoal t) { -// List tlist = new ArrayList<>(); -// Iterator it = list.iterator(); -// while (it.hasNext()) { -// QcGoal goal = (QcGoal) it.next(); -// if (goal.getParentGoal().equals(t.getId())){ -// tlist.add(goal); -// } -// } -// return tlist; -// } -// -// @DS("#header.poolName") -// private String getSerialNumber(QcGoal qcGoal) { -// int liushuiNum = qcGoalMapper.getTodayMaxNum(qcGoal); -// String liushuiStr = String.format("%04d", liushuiNum); -// String dateNumber = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); -// return dateNumber + liushuiStr; -// } -// @DS("#header.poolName") -// private String getFactoryCode() { -// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); -// String key = "#header.poolName"; -// return request.getHeader(key.substring(8)).replace("ds_", ""); -// } -// -//} +package com.op.quality.service.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.vo.TreeSelect; +import com.sun.xml.bind.v2.TODO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.quality.mapper.QcGoalMapper; +import com.op.quality.domain.QcGoal; +import com.op.quality.service.IQcGoalService; +import org.springframework.util.ObjectUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +/** + * 质量目标Service业务层处理 + * + * @author Open Platform + * @date 2024-03-04 + */ +@Service +public class QcGoalServiceImpl implements IQcGoalService { + @Autowired + private QcGoalMapper qcGoalMapper; + + /** + * 查询质量目标 + * + * @param id 质量目标主键 + * @return 质量目标 + */ + @Override + @DS("#header.poolName") + public QcGoal selectQcGoalById(String id) { + return qcGoalMapper.selectQcGoalById(id); + } + + /** + * 查询质量目标列表 + * + * @param qcGoal 质量目标 + * @return 质量目标 + */ + @Override + @DS("#header.poolName") + public List selectQcGoalList(QcGoal qcGoal) { + List qcGoals = qcGoalMapper.selectQcGoalList(qcGoal); + for (QcGoal item : qcGoals) { + item.setHasChildren(true); + } + return qcGoals; + } + + @Override + @DS("#header.poolName") + public List selectChildrenByParent(QcGoal goal) { + return qcGoalMapper.selectChildrenByParent(goal); + } + + @Override + @DS("#header.poolName") + public List buildQcGoalTreeSelect(List qcGoals) { + List qcGoalTrees = buildGoalTree(qcGoals); + return qcGoalTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + /** + * 新增质量目标 + * + * @param qcGoal 质量目标 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcGoal(QcGoal qcGoal) { + qcGoal.setCreateTime(DateUtils.getNowDate()); + qcGoal.setCreateBy(SecurityUtils.getUsername()); + + qcGoal.setId(getSerialNumber(qcGoal)); + qcGoal.setFactoryCode(getFactoryCode()); + qcGoal.setParentGoal("0"); + + return qcGoalMapper.insertQcGoal(qcGoal); + } + + @Override + @DS("#header.poolName") + public List generate(String id) { + QcGoal goal = qcGoalMapper.selectQcGoalById(id); + List genResult = new ArrayList<>(); + + // 提前分配大小,有助于减少不必要的计算和内存分配,从而提高代码的性能。 + String goalYm = goal.getGoalYm(); + BigDecimal nookQualityRate = goal.getNookQualityRate(); + BigDecimal nookRate = goal.getNookRate(); + String checkType = goal.getCheckType(); + String typeCode = goal.getTypeCode(); + String factoryCode = getFactoryCode(); + String username = SecurityUtils.getUsername(); + Date nowDate = DateUtils.getNowDate(); + String parentGoal = goal.getId(); + + + int liushuiNum = qcGoalMapper.getTodayMaxNum(goal); + String dateNumber = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + + int month = 12; + for (int i = 1; i <= month; i++) { + QcGoal monthGoal = new QcGoal(); + + String liushuiStr = String.format("%04d", liushuiNum+i-1); + monthGoal.setId(dateNumber+liushuiStr); + String mon = String.format("%02d",i); + monthGoal.setGoalYm(goalYm+"-"+mon); + monthGoal.setGoalType("mm"); + monthGoal.setNookQualityRate(nookQualityRate); + monthGoal.setNookRate(nookRate); + monthGoal.setCheckType(checkType); + monthGoal.setTypeCode(typeCode); + monthGoal.setScope(goal.getScope()); + monthGoal.setCreateTime(nowDate); + monthGoal.setCreateBy(username); + monthGoal.setFactoryCode(factoryCode); + monthGoal.setParentGoal(parentGoal); + genResult.add(monthGoal); + } + // 批量插入 + int flag = qcGoalMapper.insertQcGoalList(genResult); + if (flag > 0) { + return genResult; + }else { + return goal.getChildren(); + } + + } + + /** + * 修改质量目标 + * + * @param qcGoal 质量目标 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcGoal(QcGoal qcGoal) { + qcGoal.setUpdateTime(DateUtils.getNowDate()); + qcGoal.setUpdateBy(SecurityUtils.getUsername()); + return qcGoalMapper.updateQcGoal(qcGoal); + } + + /** + * 批量删除质量目标 + * + * @param ids 需要删除的质量目标主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcGoalByIds(String[] ids) { + boolean flag = false; + for (String id : ids) { + QcGoal goal = new QcGoal(); + goal.setParentGoal(id); + List hasChildren = qcGoalMapper.selectChildrenByParent(goal); + if (hasChildren.size() > 0) { + flag = true; + break; + } + } + if (flag) { + return 0; + }else { + return qcGoalMapper.deleteQcGoalByIds(ids); + } + } + + /** + * 删除质量目标信息 + * + * @param id 质量目标主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcGoalById(String id) { + return qcGoalMapper.deleteQcGoalById(id); + } + + @Override + public List buildGoalTree(List qcGoals) { + List returnList = new ArrayList<>(); + List tempList = qcGoals.stream().map(QcGoal::getId).collect(Collectors.toList()); + for (Iterator iterator = qcGoals.iterator(); iterator.hasNext(); ) { + QcGoal qcGoal = (QcGoal) iterator.next(); + //如果是顶级节点,遍历父节点的所有子节点 + if (!tempList.contains(qcGoal.getParentGoal())) { + List childList = getChildList(qcGoals,qcGoal); + qcGoal.setChildren(childList); + returnList.add(qcGoal); + } + } + if (returnList.isEmpty()) { + returnList = qcGoals; + } + return returnList; + } + + private List getChildList(List list, QcGoal t) { + List tlist = new ArrayList<>(); + Iterator it = list.iterator(); + while (it.hasNext()) { + QcGoal goal = (QcGoal) it.next(); + if (goal.getParentGoal().equals(t.getId())){ + tlist.add(goal); + } + } + return tlist; + } + + @DS("#header.poolName") + private String getSerialNumber(QcGoal qcGoal) { + int liushuiNum = qcGoalMapper.getTodayMaxNum(qcGoal); + String liushuiStr = String.format("%04d", liushuiNum); + String dateNumber = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + return dateNumber + liushuiStr; + } + @DS("#header.poolName") + private String getFactoryCode() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + return request.getHeader(key.substring(8)).replace("ds_", ""); + } + +} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml index 5af53236..f7f997ba 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckReportIncomeMapper.xml @@ -160,6 +160,7 @@ left join qc_check_project qcp on qcp.id = qctp.project_id left join qc_project_type qpt on qpt.project_type_code = qcp.project_type where td.belong_to = #{recordId} + order by qctp.sort + + @@ -451,4 +459,6 @@ record_id = #{item} + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 28de20ad..a24887af 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -110,7 +110,8 @@ and qct.check_no = #{checkNo} and qct.income_batch_no = #{incomeBatchNo} and qct.order_no = #{orderNo} - and qct.material_code = #{materialCode} + and qct.material_code like concat('%', + #{materialCode}, '%') and qct.material_name like concat('%', #{materialName}, '%') diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml index 812578b7..c09bd8eb 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml @@ -214,5 +214,37 @@ + + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml index 2b70f44a..5cba2bec 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml @@ -203,22 +203,21 @@ and CONVERT(varchar(7),feedback_time, 120) = SUBSTRING(#{ymd},0,8) @@ -318,6 +323,8 @@ equipment_number, inventory_number, unit_measurement, + sap_code, + sap_name, #{equipmentCode}, @@ -368,6 +375,8 @@ #{equipmentNumber}, #{inventoryNumber}, #{unitMeasurement}, + #{sapCode}, + #{sapName}, @@ -427,6 +436,8 @@ equipment_number = #{equipmentNumber}, inventory_number = #{inventoryNumber}, unit_measurement = #{unitMeasurement}, + sap_code = #{sapCode}, + sap_name = #{sapName}, where equipment_id = #{equipmentId} diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsEmStorageNewsMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsEmStorageNewsMapper.xml index c369e8b5..401c203a 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsEmStorageNewsMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsEmStorageNewsMapper.xml @@ -41,8 +41,43 @@ - select storage_id, wh_code, region_code, wa_code, storage_type, wl_code, material_code, material_desc, amount, storage_amount, occupy_amount, lpn, product_batch, receive_date, product_date, user_defined1, user_defined2, user_defined3, user_defined4, user_defined5, user_defined6, user_defined7, user_defined8, user_defined9, user_defined10, create_by, gmt_create, last_modified_by, gmt_modified, active_flag, factory_code, sap_factory_code, wl_name from wms_ods_em_storage_news - + SELECT + storage_id, + wh_code, + region_code, + wa_code, + storage_type, + wl_code, + material_code, + material_desc, + COALESCE(amount, 0) as amount, + storage_amount, + occupy_amount, + lpn, + product_batch, + receive_date, + product_date, + user_defined1, + user_defined2, + user_defined3, + user_defined4, + user_defined5, + user_defined6, + user_defined7, + user_defined8, + user_defined9, + user_defined10, + create_by, + gmt_create, + last_modified_by, + gmt_modified, + active_flag, + factory_code, + sap_factory_code, + wl_name + FROM + wms_ods_em_storage_news + +