north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue
@@ -18,6 +18,7 @@ const user=userInfo() //定义表头数据 const titleUploadData = ref({ reportingWorkId: null, //流程卡号 processId: 'NG24030804A02/1', //销售单号 @@ -79,19 +80,29 @@ }) let inputDisabled = ref(false) onMounted(() =>{ if(route.query.processId !== undefined && route.query.processId!=='' && route.query.processId!=null ){ titleUploadData.value.processId = route.query.processId } // route.query.reportingWorkId = 'BG2403140039' //判断是否传入报工编号 if(route.query.reportingWorkId!== undefined && route.query.reportingWorkId!=='' && route.query.reportingWorkId!=null){ if(route.query.reportingWorkId !== '' && route.query.reportingWorkId!=null){ request.post(`reportingWork/selectUpdateReportingWork/${route.query.reportingWorkId}`).then(res=>{ if(res.code === '200'){ titleUploadData.value = res.data.reportingWork console.log(res.data) titleSelectJson.value = res.data.basic xGrid.value.reloadData(res.data.reportingWorkDetails) let button = { code: 'update', name: '修改', status: 'primary', } gridOptions.toolbarConfig.buttons.push(button) } inputDisabled.value = true }) } }) @@ -278,7 +289,12 @@ }) let brokenRow = ref() let brokenRow = ref({ glass_child:'', order_number:'', technology_number:'' }) const gridEvents = { async toolbarButtonClick({code}) { const $grid = xGrid.value @@ -290,7 +306,7 @@ ElMessage.error(`校验不通过!`) return } saveReportingWork(0) saveReportingWork(0,'save') break } case 'saveReportingWorkReview': { @@ -299,7 +315,16 @@ ElMessage.error(`校验不通过!`) return } saveReportingWork(1) saveReportingWork(1,'save') break } case 'update': { const errMap = await $grid.validate(true) if (errMap) { ElMessage.error(`校验不通过!`) return } saveReportingWork(0,'update') break } } @@ -500,16 +525,30 @@ }) let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1 if((breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1) ){ if((breakageQuantityCount>brokenRow.value.quantity*1) ){ ElMessage.warning(`损耗数:'${breakageQuantityCount}' 完工数:'${reportingWorkNum}'之和${breakageQuantityCount+reportingWorkNum} 不能大于${brokenRow.value.quantity*1}`) return false } brokenRow.value.completedQuantity = brokenRow.value.quantity-breakageQuantityCount breakageQuantityCount = breakageQuantityCount === 0 ? null : breakageQuantityCount brokenRow.value.breakageQuantity = breakageQuantityCount brokenRow.value.damageDetails=brokenGrid.value.getTableData().fullData // xGrid.value.getTableData().fullData.forEach( // // ) const equalByOrderNum = xGrid.value.getTableData().fullData.filter((row) =>{ return row.order_number === brokenRow.value.order_number }) const maxQuantity = Math.max(...equalByOrderNum.map(item =>item.breakageQuantity || 0)) console.log(maxQuantity) equalByOrderNum.forEach((row) =>{ row.completedQuantity= brokenRow.value.quantity*1-maxQuantity }) getQuantity() done() } @@ -524,7 +563,7 @@ } }) const saveReportingWork = (type) => { const saveReportingWork = (state,saveType) => { if(xGrid.value.getTableData().fullData.length===0){ ElMessage.warning(`请选择流程卡数据`) @@ -556,10 +595,19 @@ const requestData = { title:titleUploadData.value, detail:xGrid.value.getTableData().fullData, type:type//审核状态 type:state//审核状态 } gridOptions.toolbarConfig.buttons[0].disabled=true gridOptions.toolbarConfig.buttons[1].disabled=true if(saveType==='save'){ saveReportingWorkRequest(requestData) }else{ updateReportingWorkRequest(requestData) } } const saveReportingWorkRequest = (requestData) =>{ request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{ if (res.code == 200){ ElMessage.success("报工成功") @@ -567,18 +615,33 @@ }else{ const errorObj = JSON.parse(res.msg) const msg = "序号:"+errorObj.orderNumber+'\n' +'小片顺序:'+errorObj.technologyNumber+'\n' +"实际可报工数量:"+errorObj.processNum+'<'+ "报工数量:"+errorObj.sumNum+'\n' +"请刷新界面重新报工" +'小片顺序:'+errorObj.technologyNumber+'\n' +"实际可报工数量:"+errorObj.processNum+'<'+ "报工数量:"+errorObj.sumNum+'\n' +"请刷新界面重新报工" ElMessage.error(msg) } }).catch(err =>{ ElMessage.error(err.message) }).finally(()=>{ gridOptions.toolbarConfig.buttons[0].disabled=false gridOptions.toolbarConfig.buttons[1].disabled=false }) } //更新报工数据 const updateReportingWorkRequest = (requestData) =>{ request.post(`/reportingWork/updateReportingWork`,requestData).then(res =>{ if (res.code == 200){ ElMessage.success("报工修改成功") router.push({path:'/main/reportingWorks/AddReportingWork', query:{ processId:titleUploadData.value.processId, random:Math.random()} }) } }) } @@ -659,17 +722,17 @@ const getWork = () => { let processId = titleUploadData.value.processId if (processId.indexOf("/") < 0) { ElMessage.warning("请输入正确格式流程卡") return } let indexOfChar = processId.indexOf("/") let leftString = processId.slice(0, indexOfChar) if (leftString.length != 13) { ElMessage.warning("请输入正确位数的流程卡") return } // if (processId.indexOf("/") < 0) { // // ElMessage.warning("请输入正确格式流程卡") // return // } // let indexOfChar = processId.indexOf("/") // let leftString = processId.slice(0, indexOfChar) // if (leftString.length != 13) { // ElMessage.warning("请输入正确位数的流程卡") // return // } //工序 let process = titleUploadData.value.thisProcess if (process == "" || process == null) { @@ -784,7 +847,26 @@ item.completedQuantity=row.completedQuantity } }) getQuantity() } } const getQuantity = () => { const arr = xGrid.value.getTableData().fullData const returnArr = arr.filter((obj, index, self) => self.findIndex((t) => t.order_number === obj.order_number) === index ) let sumBreak = 0 let sumQuantity = 0 returnArr.forEach((item)=>{ sumQuantity+=Number(item.completedQuantity*1) }) arr.forEach((item)=>{ sumBreak+=Number(item.breakageQuantity) || 0 }) titleUploadData.value.thisCompletedQuantity = sumQuantity titleUploadData.value.thisWornQuantity = sumBreak } </script> @@ -792,9 +874,10 @@ <template> <div style="height: 100%;width: 100%"> <div id="head" style="height: 5%;width: 100%;margin-bottom: 5px"> <el-input v-model="titleUploadData.processId" placeholder="流程卡号" style="width: 200px" @keyup.enter.native="getWork"/> <el-input :disabled="inputDisabled" v-if="titleUploadData.reportingWorkId" v-model="titleUploadData.reportingWorkId" placeholder="报工编号" style="width: 200px" /> <el-input :disabled="inputDisabled" v-model="titleUploadData.processId" placeholder="流程卡号" style="width: 200px" @keyup.enter.native="getWork"/> <el-select v-model="titleUploadData.thisProcess" clearable placeholder="请选择工序" style="width: 120px" <el-select :disabled="inputDisabled" v-model="titleUploadData.thisProcess" clearable placeholder="请选择工序" style="width: 120px" @change="getWork"> <el-option v-for="item in titleSelectJson['processType']" @@ -972,7 +1055,8 @@ v-model="brokenVisible" :close-on-click-modal="false" :close-on-press-escape="false" :title="$t('reportingWorks.damageList')" :title="$t('reportingWorks.damageList')+':' +brokenRow.glass_child+'.'+brokenRow.order_number+'.'+brokenRow.technology_number" style="width: 80%;height:75% "> <vxe-grid north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -224,7 +224,7 @@ if(res.code==200){ gridOptions.toolbarConfig.buttons[2].disabled = true if(state==2){ ElMessage.success(t('basicData.msg.reviewSuccess')) ElMessage.success(t('basicData.msg.ReviewSuccess')) }else if (state==0){ ElMessage.success(t('basicData.msg.cancelReviewSuccess')) } north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportingWorkController.java
@@ -54,6 +54,11 @@ public Result SelectUpdateReportingWork(@PathVariable String reportingWorkId) { return Result.seccess(reportingWorkService.selectUpdateReportingWorkSv(reportingWorkId)); } @ApiOperation("报工修改") @PostMapping ("/updateReportingWork") public Result updateReportingWork(@RequestBody Map<String,Object> reportingWork) { return Result.seccess(reportingWorkService.updateReportingWork(reportingWork)); } @ApiOperation("报工查询接口") @PostMapping ("/selectReportingWork/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}/{orderId}") north-glass-erp/src/main/java/com/example/erp/entity/pp/DamageDetails.java
@@ -26,7 +26,7 @@ //类型 private String breakageType; //可利用 private Integer available; private Boolean available; //退回工序 private String returnProcess; //责任工序 north-glass-erp/src/main/java/com/example/erp/entity/pp/ReportingWork.java
@@ -36,11 +36,11 @@ //本工序 private String thisProcess; //上工序数量 private Integer thisProcessQuantity; private int thisProcessQuantity; //本工序完工数量 private Integer thisCompletedQuantity; private int thisCompletedQuantity; //本工序次破数量 private Integer thisWornQuantity; private int thisWornQuantity; //下工序 private String nextProcess; //班次 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkDetailMapper.java
@@ -26,5 +26,4 @@ @Param("sDate") String startTime,@Param("eDate") String endTime,ReportingWorkDetail reportingWorkDetail); List<ReportingWorkDetail> selectByreportingWorkId(String reportingWorkId); } north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -44,8 +44,7 @@ int selectFlowCardNum(String orderNumber, String technologyNumber, String processId, String thisProcess); List<ReportingWork> selectReportingWorkMp(Integer offset, Integer pageSize, Date selectTime1, Date selectTime2, String orderId, ReportingWork reportingWork); List<Map<String,Object>> selectByReportingWorkId(String reportingWorkId,String nextProcess); Map<String, Integer> getPageTotal(Integer offset, Integer pageSize, Date selectTime1, Date selectTime2, String orderId, ReportingWork reportingWork); String selectNextProcess(String reportingWorkId); north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderProcessDetailMapper.java
@@ -12,4 +12,6 @@ @DS("sd") public interface OrderProcessDetailMapper extends BaseMapper<OrderProcessDetail> { boolean insertOrderProcessDetail(@Param("processDetailList") List<OrderProcessDetail> processDetailList); void updateQuantity(String reportingWorkId,String process,String type); } north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -20,7 +20,6 @@ import com.example.erp.mapper.sd.OrderMapper; import com.example.erp.mapper.sd.OrderProcessDetailMapper; import com.example.erp.service.sd.OrderProcessDetailService; import lombok.val; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -41,15 +40,16 @@ OrderProcessDetailMapper orderProcessDetailMapper; final ReportingWorkDetailMapper reportingWorkDetailMapper; reportingWorkDetailMapper; final OrderMapper orderMapper; orderMapper; final FlowCardMapper flowCardMapper; final OrderProcessDetailService orderProcessDetailService; public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper) { @@ -96,8 +96,8 @@ } //System.out.println("当前工序:" + process + " 上一道工序:" + previousProcess + " 下一道工序:" + nextProcess); //查询当前工序的表头数据 //System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process)); map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process)); //System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process)); map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process)); map.put("thisProcess", processList); break; } @@ -108,19 +108,20 @@ //班组下拉框 map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process)); map.put("breakageType", reportingWorkMapper.selectBasicNameByType("breakagetype")); map.put("breakageReason", reportingWorkMapper.selectBasicNameByType("breakagereason")); map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype")); map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason")); //查询本工序报工需要哪几层,上工序是什么 String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr); String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr); //判断本工序是不是第一道工序 if (interceptProcess.equals(process)) { //是第一道工序,查询流程卡数据 map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process)); } else { map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr,process)); } else { //不是第一道工序,查询报工数据 map.put("Detail", reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process)); map.put("Detail", reportingWorkMapper.SelectReworlDetailMp(processIdStr,technologyStr,process)); } // 第一道工序(流程卡数+补片数量-完工数-次破数-返工未完成数-禁用数量) @@ -128,13 +129,14 @@ // 后续工序(上工序报工数-完工数-次破数-返工未完成数) //获取该流程卡号历史报工工序 String historyProcess = reportingWorkMapper.historyProcessMp(processIdStr); String historyProcess =reportingWorkMapper.historyProcessMp(processIdStr); //历史报工工序设备 map.put("historyDevice", reportingWorkMapper.historyDeviceMp(historyProcess, process)); map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,process)); //历史报工工序班组 map.put("historyTeams", reportingWorkMapper.historyTeamsMp(processIdStr, process)); map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processIdStr,process)); //历史工序 map.put("historyProcess", reportingWorkMapper.SelectHistoryProcessMp(historyProcess, process)); map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,process)); return map; @@ -154,31 +156,41 @@ ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class); List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class); //获取当前最大报工单号生成报工单号 String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId() + 1); String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId()+1); //格式化当前日期 Date currentDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); String formattedDate = dateFormat.format(currentDate); String reportingWorkId = "BG" + formattedDate + formattedNumber; String reportingWorkId = "BG"+formattedDate+formattedNumber; reportingWork.setReportingWorkId(reportingWorkId); reportingWork.setProcessId(reportingWork.getProcessId().substring(0, 13)); reportingWork.setProcessId(reportingWork.getProcessId().substring(0,13)); int reviewState = (int) reportingWorkJson.get("type"); if (reviewState == 1) { if(reviewState==1){ reportingWork.setReviewed(reportingWork.getCreator()); reportingWork.setReviewedState(1); } else { }else{ reportingWork.setReviewedState(0); } //主表插入 reportingWorkMapper.insert(reportingWork); //副表循环插入,并且插入次破信息表。再根据次破信息修改订单玻璃流程表的完工数量与刺破数量 reportingWorkDetails.forEach(reportingWorkDetail -> { // reportingWork.setThisProcessQuantity( // reportingWork.getThisProcessQuantity() // +reportingWorkDetail.getCompletedQuantity() // +reportingWorkDetail.getBreakageQuantity()); // reportingWork.setThisCompletedQuantity( // reportingWork.getThisCompletedQuantity()+reportingWorkDetail.getCompletedQuantity()); // reportingWork.setThisWornQuantity( // reportingWork.getThisWornQuantity()+reportingWorkDetail.getBreakageQuantity()); reportingWorkDetail.setReportingWorkId(reportingWorkId); List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails(); if (damageDetails != null && !damageDetails.isEmpty()) { damageDetails.forEach(damageDetail -> { //次破明细表插入数据 if(damageDetails!=null && !damageDetails.isEmpty()){ damageDetails.forEach(damageDetail ->{ damageDetail.setReportingWorkId(reportingWorkId); damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber()); damageDetail.setProcessId(reportingWork.getProcessId()); @@ -202,7 +214,7 @@ reportingWork.getProcessId(), reportingWork.getThisProcess() ); } else { }else{ processNum = reportingWorkMapper.selectGlassProcessNum( reportingWorkDetail.getOrderNumber(), reportingWorkDetail.getTechnologyNumber(), @@ -213,14 +225,14 @@ //判断是否大于当前数量并且抛出异常 if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) { Map<String, Object> map = new HashMap<>(); map.put("orderNumber", reportingWorkDetail.getOrderNumber()); map.put("technologyNumber", reportingWorkDetail.getOrderNumber()); map.put("processNum", processNum); map.put("sumNum", reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity()); if(processNum<(reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity())){ Map<String,Object> map = new HashMap<>(); map.put("orderNumber",reportingWorkDetail.getOrderNumber()); map.put("technologyNumber",reportingWorkDetail.getOrderNumber()); map.put("processNum",processNum); map.put("sumNum",reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity()); String msg = JSON.toJSONString(map); throw new ServiceException(Constants.Code_600, msg); throw new ServiceException(Constants.Code_600,msg); } OrderProcessDetail orderProcessDetail = new OrderProcessDetail(); @@ -231,68 +243,142 @@ //根据订单id,订单序号,以及小片序号 更新小片流程的完工数量以及刺破数量 LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber()) .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0, 13)) .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0,13)) .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId()) .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess()) .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber()) .setSql("reporting_work_num_count = reporting_work_num_count +" + orderProcessDetail.getReportingWorkNum()) .setSql("reporting_work_num =reporting_work_num +" + orderProcessDetail.getReportingWorkNum()) .setSql("broken_num =broken_num +" + orderProcessDetail.getBrokenNum()); orderProcessDetailMapper.update(null, updateWrapper); .setSql("reporting_work_num_count = reporting_work_num_count +"+orderProcessDetail.getReportingWorkNum()) .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum()) .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum()); orderProcessDetailMapper.update(null,updateWrapper); reportingWorkDetailMapper.insert(reportingWorkDetail); //更新流程卡表的报工数量 if (Objects.equals(reportingWork.getNextProcess(), "")) { if(Objects.equals(reportingWork.getNextProcess(), "")){ LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); flowCardLambdaUpdateWrapper .eq(FlowCard::getProcessId, reportingWork.getProcessId()) .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber()) .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber()) .setSql("inventory_quantity = inventory_quantity +" + orderProcessDetail.getReportingWorkNum()); flowCardMapper.update(null, flowCardLambdaUpdateWrapper); .setSql("inventory_quantity = inventory_quantity +"+orderProcessDetail.getReportingWorkNum()); flowCardMapper.update(null,flowCardLambdaUpdateWrapper); } }); return true; return true; } //下工序审核方法 public boolean ReviewReportingWorkSv(Map<String, String> reportingWork) { String processId = reportingWork.get("processId"); String processId = reportingWork.get("processId"); LambdaUpdateWrapper <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper .eq(ReportingWork::getProcessId, processId.substring(0, 13)) .eq(ReportingWork::getThisProcess, reportingWork.get("process")) .eq(ReportingWork::getReviewedState, 0) .eq(ReportingWork::getProcessId, processId.substring(0,13)) .eq(ReportingWork::getThisProcess,reportingWork.get("process")) .eq(ReportingWork::getReviewedState,0) .setSql("reviewed_state =1"); reportingWorkMapper.update(null, updateWrapper); reportingWorkMapper.update(null,updateWrapper); return true; return true; } public Map<String, Object> selectUpdateReportingWorkSv(String reportingWorkId) { ReportingWork reportingWork = reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>() .eq(ReportingWork::getReportingWorkId, reportingWorkId)); //报工修改查询 public Map<String,Object> selectUpdateReportingWorkSv(String reportingWorkId) { //查询报工主表信息 ReportingWork reportingWork =reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>() .eq(ReportingWork::getReportingWorkId,reportingWorkId)); //根据报工信息查询订单主表信息 reportingWork.setOrder( orderMapper.selectOne(new LambdaQueryWrapper<Order>() .eq(Order::getOrderId, reportingWork.getOrderId()))); orderMapper.selectOne(new LambdaQueryWrapper<Order>() .eq(Order::getOrderId,reportingWork.getOrderId()))); reportingWork.setFlowCard(new FlowCard()); List<ReportingWorkDetail> reportingWorkDetails = reportingWorkDetailMapper.selectByreportingWorkId(reportingWorkId); List<Map<String,Object>> reportingWorkDetails = reportingWorkMapper.selectByReportingWorkId(reportingWorkId,reportingWork.getNextProcess()); reportingWorkDetails.forEach(reportingWorkDetail ->{ List<DamageDetails> damageDetailsList = new ArrayList<>(); damageDetailsList = damageDetailsMapper.selectList(new LambdaQueryWrapper<DamageDetails>() .eq(DamageDetails::getReportingWorkId,reportingWorkId) .eq(DamageDetails::getOrderNumber,reportingWorkDetail.get("order_number")) .eq(DamageDetails::getTechnologyNumber,reportingWorkDetail.get("technology_number")) ); reportingWorkDetail.put("damageDetails",damageDetailsList); }); Map<String, Object> map = new HashMap<>(); map.put("reportingWork", reportingWork); map.put("reportingWorkDetails", reportingWorkDetails); Map<String,Object> map = new HashMap<>(); map.put("reportingWork",reportingWork); map.put("reportingWorkDetails",reportingWorkDetails); map.put("basic",getReportingWorkBase(reportingWork.getProcessId(),reportingWork.getThisProcess())); return map; } private Map<String,Object> getReportingWorkBase(String processId, String thisProcess) { Map<String,Object> map = new HashMap<>(); //设备下拉框 map.put("deviceType", reportingWorkMapper.SelectWorkBasicDeviceMp(thisProcess)); //班组下拉框 map.put("teamsType", reportingWorkMapper.SelectWorkBasicTeamsMp(thisProcess)); map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype")); map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason")); //获取该流程卡号历史报工工序 String historyProcess =reportingWorkMapper.historyProcessMp(processId); //历史报工工序设备 map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,thisProcess)); //历史报工工序班组 map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processId,thisProcess)); //历史工序 map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,thisProcess)); return map; } @Transactional //报工修改 public Boolean updateReportingWork(Map<String, Object> reportingWorkMap) { //接收解析主附表信息 JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class); List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class); //删除刺破明细表刺破数据 damageDetailsMapper.delete( new LambdaQueryWrapper<DamageDetails>() .eq(DamageDetails::getReportingWorkId,reportingWork.getReportingWorkId()) ); //修改小片流程表数量 orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(),reportingWork.getThisProcess(),"delete"); //删除报工明细表数据 reportingWorkDetailMapper .delete(new LambdaQueryWrapper<ReportingWorkDetail>() .eq(ReportingWorkDetail::getReportingWorkId,reportingWork.getReportingWorkId())); //更细报工主表 reportingWorkMapper.updateById(reportingWork); reportingWorkDetails.forEach(reportingWorkDetail->{ List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails(); //每一条报工数据循环插入次破明细表 if(damageDetails!=null && !damageDetails.isEmpty()){ damageDetails.forEach(damageDetailsMapper::insert); } //插入报工数据 reportingWorkDetailMapper.insert(reportingWorkDetail); }); //修改小片流程表数量为报工明细表数量 orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(),reportingWork.getThisProcess(),"add"); return true; } //报工管理查询 public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, java.sql.Date selectTime1, java.sql.Date selectTime2, String orderId, ReportingWork reportingWork) { Integer offset = (pageNum - 1) * pageSize; north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -11,21 +11,10 @@ <result property="thisProcess" column="this_process"/> <result property="reviewedState" column="reviewed_state"/> <result property="previousProcessQuantity" column="previous_process_quantity"/> <result property="reportingWorkTime" column="reporting_work_time"/> <result property="thisCompletedQuantity" column="this_completed_quantity"/> <result property="thisWornQuantity" column="this_worn_quantity"/> <result property="deviceName" column="device_name"/> <result property="teamsGroupsName" column="teams_groups_name"/> <result property="reviewedState" column="reviewed_state"/> <result property="reportingWorkId" column="reporting_work_id"/> <result property="processId" column="process_id"/> <result property="completedArea" column="completedArea"/> <result property="wornArea" column="wornArea"/> <association property="order" javaType="com.example.erp.entity.sd.Order"> <result property="customerId" column="customer_id"/> <result property="customerName" column="customer_name"/> <result property="project" column="project"/> <result property="batch" column="batch"/> </association> <association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard"> <result property="orderId" column="order_id"/> @@ -33,9 +22,6 @@ </association> <association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail"> <result property="completedQuantity" column="completed_quantity"/> </association> <association property="orderGlassDetail" javaType="com.example.erp.entity.sd.OrderGlassDetail"> <result property="area" column="area"/> </association> </resultMap> @@ -102,6 +88,7 @@ ogd.child_height, od.shape, fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity, fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as completedQuantity, odpd.reporting_work_num_count as completed, odpd.broken_num as onceBroken FROM @@ -145,6 +132,7 @@ ogd.child_height, od.shape, odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity, odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as completedQuantity, odpd.reporting_work_num_count as completed, odpd.broken_num as onceBroken, ogd.`group` @@ -322,7 +310,98 @@ and a.technology_number = #{technologyNumber} </select> <select id="selectReportingWorkMp" resultMap="reportingWorkMap"> <!--查询修改报工明细数据--> <select id="selectByReportingWorkId" > select a.reporting_work_id, d.order_number, d.glass_child, d.technology_number, d.glass_address, c.quantity as quantity_card, d.child_width, d.child_height, e.shape, a.completed_quantity+a.breakage_quantity as 'quantity', -- 可报工数 a.completed_quantity as 'completedQuantity', -- 完工数 a.breakage_quantity as 'breakageQuantity', -- 破损数 f.completed_quantity as thisQuantitySum ,-- 本工序完工和 <if test="nextProcess != null and nextProcess != ''"> -- 非最后一道工序 ifnull(g.completed_quantity,0) as nextQuantitySum, -- 后工序已完成 if((f.completed_quantity -ifnull(g.completed_quantity,0)) >= a.completed_quantity, 0, (a.completed_quantity-f.completed_quantity +ifnull(g.completed_quantity,0)) ) as minQuantity -- 修改最小数 </if> <if test="nextProcess == null or nextProcess == ''"> -- 最后一道工序 c.received_quantity, -- 已入库数量 c.inventory_quantity, -- 库存数量 if(ifnull(inventory_quantity,0) -ifnull(c.received_quantity,0) >= a.completed_quantity,0, (a.completed_quantity-(ifnull(c.inventory_quantity,0) -ifnull(c.received_quantity,0))) ) as minQuantity -- 修改最小数 </if> -- e.thisQuantitySum from reporting_work_detail as a left join reporting_work as b on a.reporting_work_id = b.reporting_work_id left join flow_card as c on c.process_id = b.process_id and c.technology_number = a.technology_number left join sd.order_glass_detail as d on d.order_id = c.order_id and c.order_number = d.order_number and d.technology_number = c.technology_number left join sd.order_detail as e on e.order_id = d.order_id and e.order_number = d.order_number left join (select sum(completed_quantity) as completed_quantity , rw.process_id, rwd.order_number, rwd.technology_number, rw.this_process from reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id group by rw.process_id, rw.this_process, rwd.order_number, rwd.technology_number ) as f on f.process_id = b.process_id and f.this_process = b.this_process and f.order_number = a.order_number and f.technology_number = a.technology_number <if test="nextProcess != null and nextProcess != ''"> left join (select ifnull(sum(completed_quantity),0) as completed_quantity , rw.process_id, rwd.order_number, rwd.technology_number, rw.this_process from reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id group by rw.process_id, rw.this_process, rwd.order_number, rwd.technology_number ) as g on g.process_id = b.process_id and g.this_process = b.next_process and g.order_number = a.order_number and g.technology_number = a.technology_number </if> where a.reporting_work_id = #{reportingWorkId} </select> <select id="selectReportingWorkMp" resultMap="reportingWorkMap"> select rw.reporting_work_id, (rw.reporting_work_time) as reporting_work_time, o.order_id, north-glass-erp/src/main/resources/mapper/pp/ReportingWorkDetail.xml
@@ -154,6 +154,7 @@ </select> <!--查询detail明细--> <select id="reportingWorkId"> select * from reporting_work_detail north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetail.xml
@@ -26,5 +26,47 @@ </insert> <update id="updateQuantity"> update sd.order_process_detail as a inner join (select rwd.completed_quantity, rwd.breakage_quantity, rw.process_id, rwd.order_number, rwd.technology_number from pp.reporting_work_detail as rwd left join pp.reporting_work as rw on rwd.reporting_work_id = rw.reporting_work_id where rwd.reporting_work_id =#{reportingWorkId} ) as b on a.process_id = b.process_id and a.order_number = b.order_number and a.technology_number = b.technology_number <if test="type == 'delete'"> set a.reporting_work_num_count = a.reporting_work_num_count-b.completed_quantity, a.reporting_work_num = a.reporting_work_num-b.completed_quantity, a.broken_num = a.broken_num-b.breakage_quantity </if> <if test="type == 'add'"> set a.reporting_work_num_count = a.reporting_work_num_count+b.completed_quantity, a.reporting_work_num = a.reporting_work_num+b.completed_quantity, a.broken_num = a.broken_num+b.breakage_quantity </if> where a.process = #{process} </update> </mapper> north-glass-erp/target/classes/mapper/pp/ReportingWork.xml
@@ -11,21 +11,10 @@ <result property="thisProcess" column="this_process"/> <result property="reviewedState" column="reviewed_state"/> <result property="previousProcessQuantity" column="previous_process_quantity"/> <result property="reportingWorkTime" column="reporting_work_time"/> <result property="thisCompletedQuantity" column="this_completed_quantity"/> <result property="thisWornQuantity" column="this_worn_quantity"/> <result property="deviceName" column="device_name"/> <result property="teamsGroupsName" column="teams_groups_name"/> <result property="reviewedState" column="reviewed_state"/> <result property="reportingWorkId" column="reporting_work_id"/> <result property="processId" column="process_id"/> <result property="completedArea" column="completedArea"/> <result property="wornArea" column="wornArea"/> <association property="order" javaType="com.example.erp.entity.sd.Order"> <result property="customerId" column="customer_id"/> <result property="customerName" column="customer_name"/> <result property="project" column="project"/> <result property="batch" column="batch"/> </association> <association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard"> <result property="orderId" column="order_id"/> @@ -33,9 +22,6 @@ </association> <association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail"> <result property="completedQuantity" column="completed_quantity"/> </association> <association property="orderGlassDetail" javaType="com.example.erp.entity.sd.OrderGlassDetail"> <result property="area" column="area"/> </association> </resultMap> @@ -102,6 +88,7 @@ ogd.child_height, od.shape, fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity, fc.quantity -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as completedQuantity, odpd.reporting_work_num_count as completed, odpd.broken_num as onceBroken FROM @@ -145,6 +132,7 @@ ogd.child_height, od.shape, odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as quantity, odpds.reporting_work_num -odpd.reporting_work_num -odpd.broken_num + ifnull(c.patchNumSum,0) as completedQuantity, odpd.reporting_work_num_count as completed, odpd.broken_num as onceBroken, ogd.`group` @@ -322,7 +310,98 @@ and a.technology_number = #{technologyNumber} </select> <select id="selectReportingWorkMp" resultMap="reportingWorkMap"> <!--查询修改报工明细数据--> <select id="selectByReportingWorkId" > select a.reporting_work_id, d.order_number, d.glass_child, d.technology_number, d.glass_address, c.quantity as quantity_card, d.child_width, d.child_height, e.shape, a.completed_quantity+a.breakage_quantity as 'quantity', -- 可报工数 a.completed_quantity as 'completedQuantity', -- 完工数 a.breakage_quantity as 'breakageQuantity', -- 破损数 f.completed_quantity as thisQuantitySum ,-- 本工序完工和 <if test="nextProcess != null and nextProcess != ''"> -- 非最后一道工序 ifnull(g.completed_quantity,0) as nextQuantitySum, -- 后工序已完成 if((f.completed_quantity -ifnull(g.completed_quantity,0)) >= a.completed_quantity, 0, (a.completed_quantity-f.completed_quantity +ifnull(g.completed_quantity,0)) ) as minQuantity1 -- 修改最小数 </if> <if test="nextProcess == null or nextProcess == ''"> -- 最后一道工序 c.received_quantity, -- 已入库数量 c.inventory_quantity, -- 库存数量 if(ifnull(inventory_quantity,0) -ifnull(c.received_quantity,0) >= a.completed_quantity,0, (a.completed_quantity-(ifnull(c.inventory_quantity,0) -ifnull(c.received_quantity,0))) ) as minQuantity2 -- 修改最小数 </if> -- e.thisQuantitySum from reporting_work_detail as a left join reporting_work as b on a.reporting_work_id = b.reporting_work_id left join flow_card as c on c.process_id = b.process_id and c.technology_number = a.technology_number left join sd.order_glass_detail as d on d.order_id = c.order_id and c.order_number = d.order_number and d.technology_number = c.technology_number left join sd.order_detail as e on e.order_id = d.order_id and e.order_number = d.order_number left join (select sum(completed_quantity) as completed_quantity , rw.process_id, rwd.order_number, rwd.technology_number, rw.this_process from reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id group by rw.process_id, rw.this_process, rwd.order_number, rwd.technology_number ) as f on f.process_id = b.process_id and f.this_process = b.this_process and f.order_number = a.order_number and f.technology_number = a.technology_number <if test="nextProcess != null and nextProcess != ''"> left join (select ifnull(sum(completed_quantity),0) as completed_quantity , rw.process_id, rwd.order_number, rwd.technology_number, rw.this_process from reporting_work as rw left join reporting_work_detail as rwd on rw.reporting_work_id = rwd.reporting_work_id group by rw.process_id, rw.this_process, rwd.order_number, rwd.technology_number ) as g on g.process_id = b.process_id and g.this_process = b.next_process and g.order_number = a.order_number and g.technology_number = a.technology_number </if> where a.reporting_work_id = #{reportingWorkId} </select> <select id="selectReportingWorkMp" resultMap="reportingWorkMap"> select rw.reporting_work_id, (rw.reporting_work_time) as reporting_work_time, o.order_id, north-glass-erp/target/classes/mapper/pp/ReportingWorkDetail.xml
@@ -154,6 +154,7 @@ </select> <!--查询detail明细--> <select id="reportingWorkId"> select * from reporting_work_detail north-glass-erp/target/classes/mapper/sd/OrderProcessDetail.xml
@@ -26,5 +26,47 @@ </insert> <update id="updateQuantity"> update sd.order_process_detail as a inner join (select rwd.completed_quantity, rwd.breakage_quantity, rw.process_id, rwd.order_number, rwd.technology_number from pp.reporting_work_detail as rwd left join pp.reporting_work as rw on rwd.reporting_work_id = rw.reporting_work_id where rwd.reporting_work_id =#{reportingWorkId} ) as b on a.process_id = b.process_id and a.order_number = b.order_number and a.technology_number = b.technology_number <if test="type == 'delete'"> set a.reporting_work_num_count = a.reporting_work_num_count-b.completed_quantity, a.reporting_work_num = a.reporting_work_num-b.completed_quantity, a.broken_num = a.broken_num-b.breakage_quantity </if> <if test="type == 'add'"> set a.reporting_work_num_count = a.reporting_work_num_count+b.completed_quantity, a.reporting_work_num = a.reporting_work_num+b.completed_quantity, a.broken_num = a.broken_num+b.breakage_quantity </if> where a.process = #{process} </update> </mapper>