diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkDTO.java index 58bbdbb7..b58d9966 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkDTO.java @@ -92,7 +92,7 @@ public class MesReportWorkDTO extends BaseEntity { /** 工时 */ @Excel(name = "工时") - private Long workTime; + private BigDecimal workTime; /** 线体编码 */ @Excel(name = "线体编码") @@ -163,6 +163,14 @@ public class MesReportWorkDTO extends BaseEntity { private String feedbackTimeEnd; private String endReport; + public BigDecimal getWorkTime() { + return workTime; + } + + public void setWorkTime(BigDecimal workTime) { + this.workTime = workTime; + } + public String getEndReport() { return endReport; } @@ -490,13 +498,6 @@ public class MesReportWorkDTO extends BaseEntity { public String getStatus() { return status; } - public void setWorkTime(Long workTime) { - this.workTime = workTime; - } - - public Long getWorkTime() { - return workTime; - } public void setMachineCode(String machineCode) { this.machineCode = machineCode; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java index 1e4ef003..6db08321 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java @@ -110,7 +110,7 @@ public class wmsReportWork extends BaseEntity { /** 工时 */ @Excel(name = "工时") - private Long workTime; + private BigDecimal workTime; @Excel(name = "用人") private Long useMan; @@ -537,13 +537,15 @@ public class wmsReportWork extends BaseEntity { public String getStatus() { return status; } - public void setWorkTime(Long workTime) { - this.workTime = workTime; - } - public Long getWorkTime() { + public BigDecimal getWorkTime() { return workTime; } + + public void setWorkTime(BigDecimal workTime) { + this.workTime = workTime; + } + public void setMachineCode(String machineCode) { this.machineCode = machineCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java index b8433691..4f4c1f15 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java @@ -110,7 +110,7 @@ public class MesReportWork extends BaseEntity { /** 工时 */ @Excel(name = "工时") - private Long workTime; + private BigDecimal workTime; @Excel(name = "用人") private Long useMan; @@ -537,13 +537,15 @@ public class MesReportWork extends BaseEntity { public String getStatus() { return status; } - public void setWorkTime(Long workTime) { - this.workTime = workTime; - } - public Long getWorkTime() { + public BigDecimal getWorkTime() { return workTime; } + + public void setWorkTime(BigDecimal workTime) { + this.workTime = workTime; + } + public void setMachineCode(String machineCode) { this.machineCode = machineCode; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 5d01a67d..8e25229d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -136,6 +136,15 @@ public class MesReportWorkController extends BaseController { } } + /** + * 报工撤销 + */ + @RequiresPermissions("mes:reportWork:edit") + @PutMapping("/reportSapCancel") + public AjaxResult reportSapCancel(@RequestBody MesReportWork mesReportWork) { + return toAjax(mesReportWorkService.reportSapCancel(mesReportWork)); + } + /** * 删除报工报表 */ diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java index 49d5e5bd..010e2284 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java @@ -55,7 +55,7 @@ public class MesReportWork extends BaseEntity { /** 工时 */ @Excel(name = "工时") - private Long workTime; + private BigDecimal workTime; @Excel(name = "用人") private Long useMan; @@ -702,13 +702,15 @@ public class MesReportWork extends BaseEntity { public String getStatus() { return status; } - public void setWorkTime(Long workTime) { - this.workTime = workTime; - } - public Long getWorkTime() { + public BigDecimal getWorkTime() { return workTime; } + + public void setWorkTime(BigDecimal workTime) { + this.workTime = workTime; + } + public void setMachineCode(String machineCode) { this.machineCode = machineCode; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 35ccd15d..153d45bb 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -127,4 +127,6 @@ public interface MesReportWorkMapper { MesReportWork getEndReport(MesReportWork pWork); List selectMesReportWorkList_S(MesReportWork mesReportWork); + + int reportSapCancel(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java index ae6ff30e..95d9f2cb 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesReportWorkService.java @@ -101,4 +101,6 @@ public interface IMesReportWorkService { List getPrepareList(MesPrepareDetail mesPrepareDetail); List selectMesReportWorkList_S(MesReportWork mesReportWork); + + int reportSapCancel(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java index 129e6d27..ccad386e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java @@ -40,4 +40,5 @@ public interface IWCSInterfaceService { Map dryRoomDataHeader(BoardDTO boardDTO); Map dryRoomDataCarousel(BoardDTO boardDTO); + } 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 062f4305..f63e76c4 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 @@ -536,57 +536,4 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return map; } - -// public static void main(String[] args) { -// param param=new param(); -// param.setReqCode(IdUtils.fastSimpleUUID()); -// param.setReqTime(DateUtils.dateTimeNow()); -// param.setBufferType("10"); -// param.setFactory("999"); -// try { -// String res= HttpUtils.sendPost("http://192.168.109.36:5001/api/ReceivingAndFeedingMaterials/bufferInfoSync", JSON.toJSONString(param)); -// System.out.println(res); -// }catch (Exception e){ -// System.out.println(e.getMessage()); -// } -// -// } -// static class param{ -// String reqCode; -// String reqTime; -// String factory; -// String bufferType; -// -// public String getReqCode() { -// return reqCode; -// } -// -// public void setReqCode(String reqCode) { -// this.reqCode = reqCode; -// } -// -// public String getReqTime() { -// return reqTime; -// } -// -// public void setReqTime(String reqTime) { -// this.reqTime = reqTime; -// } -// -// public String getFactory() { -// return factory; -// } -// -// public void setFactory(String factory) { -// this.factory = factory; -// } -// -// public String getBufferType() { -// return bufferType; -// } -// -// public void setBufferType(String bufferType) { -// this.bufferType = bufferType; -// } -// } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index 2f93a072..4cb75a1f 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -1,5 +1,6 @@ package com.op.mes.service.impl; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -230,7 +231,7 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer srwork.setQuantity(mesReportWork.getQuantitys()); srwork.setQuantityFeedback(mesReportWork.getQuantityFeedbacks()); srwork.setUseMan(mesReportWork.getUseMans()); - srwork.setWorkTime(mesReportWork.getWorkTimes()); + srwork.setWorkTime(new BigDecimal(mesReportWork.getWorkTimes())); srwork.setUseMan(mesReportWork.getUseMans()); srwork.setProdType("prod"); rworks.add(srwork); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 8d1d7fe9..95c6a72c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -176,6 +176,14 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { return dtos; } + @Override + @DS("#header.poolName") + public int reportSapCancel(MesReportWork mesReportWork) { + mesReportWork.setFactoryCode(ServletUtils.getRequest().getHeader("PoolName")); + int m = mesReportWorkMapper.reportSapCancel(mesReportWork); + return m; + } + /** * 修改报工报表 * diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 632865c5..fb4dd409 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -813,8 +813,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" id = #{item.id} + + update mes_report_work set + upload_time = null, + upload_status = '0', + upload_msg = null + where workorder_code = #{workorderCode} + - + update mes_report_work set del_flag = '1' where id = #{id} diff --git a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java index bd19fc1f..eec938c2 100644 --- a/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java +++ b/op-modules/op-open/src/main/java/com/op/open/controller/OpenController.java @@ -108,7 +108,7 @@ public class OpenController extends BaseController { } //添加检测任务 - return success(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); + return toAjax(openService.insertQcCheckTaskProduce(qcCheckTaskProduce)); } /**===============ZL0010-来料检验不合格控制流程提交 :"workflowId": 26235============= diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index e7b079ed..c510be45 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -368,6 +368,7 @@ public class OpenServiceImpl implements OpenService { /**qc_material_group_detail**/ QcMaterialGroupDetailDTO group = openMapper.getGroupByMaterial(qcCheckTaskProduce.getMaterialCode()); if (group == null) { + logger.info(qcCheckTaskProduce.getMaterialCode()+"没有维护物料组检测项,检验任务生成失败"); return 0;//没有找到检测项目 } qctp.setGroupId(group.getGroupId());//共性 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportInventoryController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportInventoryController.java new file mode 100644 index 00000000..eed07714 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckReportInventoryController.java @@ -0,0 +1,185 @@ +package com.op.quality.controller; + +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcBomComponent; +import com.op.quality.domain.QcCheckReportIncome; +import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcSupplier; +import com.op.quality.service.IQcCheckReportInventoryService; +import com.op.system.api.domain.SysUser; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * 来料检验Controller + * + * @author Open Platform + * @date 2023-10-19 + */ +@RestController +@RequestMapping("/qcInventoryReport") +public class QcCheckReportInventoryController extends BaseController { + @Autowired + private IQcCheckReportInventoryService qcCheckReportInventoryService; + + /** + * 查询来料检验列表 + */ + @RequiresPermissions("quality:incomeReport:list") + @GetMapping("/list") + public TableDataInfo list(QcCheckReportIncome qcCheckReportIncome) { + + //默认时间范围T 00:00:00~T+1 00:00:00 + if(StringUtils.isEmpty(qcCheckReportIncome.getCheckTimeStart())){ + qcCheckReportIncome.setCheckTimeStart(DateUtils.getDate()+" 00:00:00");//start + LocalDate date = LocalDate.now(); + LocalDate dateEnd = date.plusDays(1); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String dateEndStr = dtf.format(dateEnd)+" 23:59:59"; + qcCheckReportIncome.setCheckTimeEnd(dateEndStr);//end + } + +// if(StringUtils.isEmpty(qcCheckReportIncome.getCheckTimeStart())){ +// qcCheckReportIncome.setCheckTimeStart(qcCheckReportIncome.getIncomeTimeStart());//start +// qcCheckReportIncome.setCheckTimeEnd(qcCheckReportIncome.getIncomeTimeStart());//end +// } + + startPage(); + List list = qcCheckReportInventoryService.selectQcCheckReportIncomeList(qcCheckReportIncome); + return getDataTable(list); + } + + /** + * 导出来料检验列表 + */ + @RequiresPermissions("quality:incomeReport:export") + @Log(title = "来料检验", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcCheckReportIncome qcCheckReportIncome) { + + //默认时间范围T 00:00:00~T+1 00:00:00 + if(StringUtils.isEmpty(qcCheckReportIncome.getIncomeTimeStart())){ + qcCheckReportIncome.setIncomeTimeStart(DateUtils.getDate()+" 00:00:00");//start + LocalDate date = LocalDate.now(); + LocalDate dateEnd = date.plusDays(1); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; + qcCheckReportIncome.setIncomeTimeEnd(dateEndStr);//end + } + +// if(StringUtils.isEmpty(qcCheckReportIncome.getCheckTimeStart())){ +// qcCheckReportIncome.setCheckTimeStart(qcCheckReportIncome.getIncomeTimeStart());//start +// qcCheckReportIncome.setCheckTimeEnd(qcCheckReportIncome.getIncomeTimeStart());//end +// } + + List list = qcCheckReportInventoryService.selectQcCheckReportIncomeList(qcCheckReportIncome); + ExcelUtil util = new ExcelUtil(QcCheckReportIncome.class); + util.exportExcel(response, list, "来料检验数据"); + } + + /** + * 获取来料检验详细信息 + */ + @RequiresPermissions("quality:incomeReport:query") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") String recordId) { + return success(qcCheckReportInventoryService.selectQcCheckReportIncomeByRecordId(recordId)); + } + + /** + * 新增来料检验 + */ + @RequiresPermissions("quality:incomeReport:add") + @Log(title = "来料检验", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcCheckReportIncome qcCheckReportIncome) { + int r = qcCheckReportInventoryService.insertQcCheckReportIncome(qcCheckReportIncome); + if(r>0){ + return toAjax(r); + } + return error("添加失败:请检查物料的关联检测项"); + } + + /** + * 修改来料检验 + */ + @RequiresPermissions("quality:incomeReport:edit") + @Log(title = "来料检验", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcCheckReportIncome qcCheckReportIncome) { + return toAjax(qcCheckReportInventoryService.updateQcCheckReportIncome(qcCheckReportIncome)); + } + + /** + * 删除来料检验 + */ + @RequiresPermissions("quality:incomeReport:remove") + @Log(title = "来料检验", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable String[] recordIds) { + return toAjax(qcCheckReportInventoryService.deleteQcCheckReportIncomeByRecordIds(recordIds)); + } + + /** + * 查询BOM物料管理列表 + */ + @GetMapping("/getQcListBom") + public TableDataInfo getQcListBom(QcBomComponent bomComponent) { + startPage(); + List list = qcCheckReportInventoryService.getQcListBom(bomComponent); + return getDataTable(list); + } + /** + * 查询供应商列表 + */ + @GetMapping("/getQcListSupplier") + public TableDataInfo getQcListSupplier(QcSupplier qcSupplier) { + startPage(); + List list = qcCheckReportInventoryService.getQcListSupplier(qcSupplier); + return getDataTable(list); + } + /** + * 查询人员列表 + */ + @GetMapping("/getQcListUser") + public TableDataInfo getQcListUser(SysUser sysUser) { + startPage(); + List list = qcCheckReportInventoryService.getQcListUser(sysUser); + return getDataTable(list); + } + + /** + * 状态修改 + */ + @PutMapping("/changeIncomeStatus") + public AjaxResult changeIncomeStatus(@RequestBody QcCheckReportIncome qcCheckReportIncome) { + qcCheckReportIncome.setUpdateBy(SecurityUtils.getUsername()); + qcCheckReportIncome.setUpdateTime(DateUtils.getNowDate()); + return toAjax(qcCheckReportInventoryService.updateIncomeStatus(qcCheckReportIncome)); + } + + /** + * 检验项目弹窗列表 + * @param + * @return + */ + @GetMapping("/getCkeckProjectList") + public TableDataInfo getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail) { + List list = qcCheckReportInventoryService.getCkeckProjectList(qcCheckTaskDetail); + return getDataTable(list); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java new file mode 100644 index 00000000..1df4ac03 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java @@ -0,0 +1,116 @@ +package com.op.quality.controller; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.op.common.core.utils.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +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.QcCheckTaskInventory; +import com.op.quality.service.IQcCheckTaskInventoryService; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 库存检验任务Controller + * + * @author Open Platform + * @date 2024-01-12 + */ +@RestController +@RequestMapping("/qcInventory") +public class QcCheckTaskInventoryController extends BaseController { + @Autowired + private IQcCheckTaskInventoryService qcCheckTaskInventoryService; + + /** + * 查询库存检验任务列表 + */ + @RequiresPermissions("quality:qcInventory:list") + @GetMapping("/list") + public TableDataInfo list(QcCheckTaskInventory qcCheckTaskInventory) { + + //默认时间范围T 00:00:00~T+1 00:00:00 + if(StringUtils.isEmpty(qcCheckTaskInventory.getIncomeTimeStart())){ + qcCheckTaskInventory.setIncomeTimeStart(DateUtils.getDate()+" 00:00:00");//start + LocalDate date = LocalDate.now(); + LocalDate dateEnd = date.plusDays(1); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; + qcCheckTaskInventory.setIncomeTimeEnd(dateEndStr);//end + } + startPage(); + List list = qcCheckTaskInventoryService.selectQcCheckTaskInventoryList(qcCheckTaskInventory); + return getDataTable(list); + } + + /** + * 导出库存检验任务列表 + */ + @RequiresPermissions("quality:qcInventory:export") + @Log(title = "库存检验任务", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcCheckTaskInventory qcCheckTaskInventory) { + List list = qcCheckTaskInventoryService.selectQcCheckTaskInventoryList(qcCheckTaskInventory); + ExcelUtil util = new ExcelUtil(QcCheckTaskInventory.class); + util.exportExcel(response, list, "库存检验任务数据"); + } + + /** + * 获取库存检验任务详细信息 + */ + @RequiresPermissions("quality:qcInventory:query") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") String recordId) { + return success(qcCheckTaskInventoryService.selectQcCheckTaskInventoryByRecordId(recordId)); + } + + /** + * 新增库存检验任务 + */ + @RequiresPermissions("quality:qcInventory:add") + @Log(title = "库存检验任务", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcCheckTaskInventory qcCheckTaskInventory) { + int r = qcCheckTaskInventoryService.insertQcCheckTaskInventory(qcCheckTaskInventory); + if(r>0){ + return toAjax(r); + } + return error("添加失败:请检查物料的关联检测项"); + } + + /** + * 修改库存检验任务 + */ + @RequiresPermissions("quality:qcInventory:edit") + @Log(title = "库存检验任务", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcCheckTaskInventory qcCheckTaskInventory) { + return toAjax(qcCheckTaskInventoryService.updateQcCheckTaskInventory(qcCheckTaskInventory)); + } + + /** + * 删除库存检验任务 + */ + @RequiresPermissions("quality:qcInventory:remove") + @Log(title = "库存检验任务", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable String[] recordIds) { + return toAjax(qcCheckTaskInventoryService.deleteQcCheckTaskInventoryByRecordIds(recordIds)); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java index f9e69bc6..25df4728 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskWarehousingController.java @@ -6,6 +6,7 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.quality.domain.QcCheckTaskIncome; @@ -101,10 +102,8 @@ public class QcCheckTaskWarehousingController extends BaseController { @RequiresPermissions("quality:qcWarehousing:add") @Log(title = "成品入库检验任务", businessType = BusinessType.INSERT) @PostMapping + @DS("#header.poolName") public AjaxResult add(@RequestBody QcCheckTaskWarehousing qcCheckTaskWarehousing) { - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - qcCheckTaskWarehousing.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); int r = qcCheckTaskWarehousingService.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing); if(r>0){ return toAjax(r); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java index 1c65f21f..8be77956 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckUnqualifiedController.java @@ -46,15 +46,15 @@ public class QcCheckUnqualifiedController extends BaseController { public TableDataInfo list(QcCheckUnqualified qcCheckUnqualified) { startPage(); - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(qcCheckUnqualified.getCheckTimeStart())){ - qcCheckUnqualified.setCheckTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - qcCheckUnqualified.setCheckTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(qcCheckUnqualified.getCheckTimeStart())){ +// qcCheckUnqualified.setCheckTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// qcCheckUnqualified.setCheckTimeEnd(dateEndStr);//end +// } qcCheckUnqualified.setDelFlag("0"); List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); return getDataTable(list); @@ -67,15 +67,15 @@ public class QcCheckUnqualifiedController extends BaseController { @Log(title = "不合格处理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, QcCheckUnqualified qcCheckUnqualified) { - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(qcCheckUnqualified.getCheckTimeStart())){ - qcCheckUnqualified.setCheckTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - qcCheckUnqualified.setCheckTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(qcCheckUnqualified.getCheckTimeStart())){ +// qcCheckUnqualified.setCheckTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// qcCheckUnqualified.setCheckTimeEnd(dateEndStr);//end +// } qcCheckUnqualified.setDelFlag("0"); List list = qcCheckUnqualifiedService.selectQcCheckUnqualifiedList(qcCheckUnqualified); ExcelUtil util = new ExcelUtil(QcCheckUnqualified.class); @@ -102,10 +102,10 @@ public class QcCheckUnqualifiedController extends BaseController { } /** - * 修改不合格处理 + * 不合格处理发起OA流程 */ @RequiresPermissions("quality:unqualified:edit") - @Log(title = "不合格处理", businessType = BusinessType.UPDATE) + @Log(title = "不合格处理发起OA流程", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody QcCheckUnqualified qcCheckUnqualified) { return toAjax(qcCheckUnqualifiedService.updateQcCheckUnqualified(qcCheckUnqualified)); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupDetailController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupDetailController.java index 142d4c26..522ea65e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupDetailController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupDetailController.java @@ -41,7 +41,6 @@ public class QcMaterialGroupDetailController extends BaseController { @RequiresPermissions("quality:materialGroupDetail:list") @GetMapping("/list") public TableDataInfo list(QcMaterialGroupDetail qcMaterialGroupDetail) { - startPage(); List list = qcMaterialGroupDetailService.selectQcMaterialGroupDetailList(qcMaterialGroupDetail); return getDataTable(list); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java new file mode 100644 index 00000000..9663cf94 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java @@ -0,0 +1,465 @@ +package com.op.quality.domain; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 库存检验任务对象 qc_check_task_inventory + * + * @author Open Platform + * @date 2024-01-12 + */ +public class QcCheckTaskInventory extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** id */ + private String recordId; + + /** 检验任务编号 */ + @Excel(name = "检验任务编号") + private String checkNo; + + /** 来料批次号 */ + @Excel(name = "来料批次号") + private String incomeBatchNo; + + /** 订单号 */ + @Excel(name = "订单号") + private String orderNo; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 收货数量 */ + @Excel(name = "收货数量") + private BigDecimal quality; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 供应商编码 */ + @Excel(name = "供应商编码") + private String supplierCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + /** 来料时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date incomeTime; + + /** 检测地点 */ + @Excel(name = "检测地点") + private String checkLoc; + + /** 检测状态0待检测1检测中2检测完成 */ + @Excel(name = "检测状态0待检测1检测中2检测完成") + private String checkStatus; + + /** 检测人工号 */ + @Excel(name = "检测人工号") + private String checkManCode; + + /** 检测人姓名 */ + @Excel(name = "检测人姓名") + private String checkManName; + + /** 检验时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "检验时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date checkTime; + + /** 检验结果Y合格 */ + @Excel(name = "检验结果Y合格") + private String checkResult; + + /** 是否启用1启用0停用 */ + @Excel(name = "是否启用1启用0停用") + private String status; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 删除标识1删除0正常 */ + private String delFlag; + + /** 检验节点 */ + @Excel(name = "检验节点") + private String checkType; + + /** 不合格数量 */ + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + + /** 抽样数量 */ + @Excel(name = "抽样数量") + private BigDecimal sampleQuality; + + /** A类不良 */ + @Excel(name = "A类不良") + private BigDecimal aNoOkquality; + + /** B类不良 */ + @Excel(name = "B类不良") + private BigDecimal bNoOkquality; + + /** C类不良 */ + @Excel(name = "C类不良") + private BigDecimal cNoOkquality; + + /** 检验节点大类 */ + @Excel(name = "检验节点大类") + private String typeCode; + + /** 订单类型 */ + @Excel(name = "订单类型") + private String orderType; + + private String incomeTimeStart; + private String incomeTimeEnd; + private String checkTimeStart; + private String checkTimeEnd; + + private List defects; + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + public void setCheckNo(String checkNo) { + this.checkNo = checkNo; + } + + public String getCheckNo() { + return checkNo; + } + public void setIncomeBatchNo(String incomeBatchNo) { + this.incomeBatchNo = incomeBatchNo; + } + + public String getIncomeBatchNo() { + return incomeBatchNo; + } + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getOrderNo() { + return orderNo; + } + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialCode() { + return materialCode; + } + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getMaterialName() { + return materialName; + } + public void setQuality(BigDecimal quality) { + this.quality = quality; + } + + public BigDecimal getQuality() { + return quality; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setSupplierCode(String supplierCode) { + this.supplierCode = supplierCode; + } + + public String getSupplierCode() { + return supplierCode; + } + public void setSupplierName(String supplierName) { + this.supplierName = supplierName; + } + + public String getSupplierName() { + return supplierName; + } + public void setIncomeTime(Date incomeTime) { + this.incomeTime = incomeTime; + } + + public Date getIncomeTime() { + return incomeTime; + } + public void setCheckLoc(String checkLoc) { + this.checkLoc = checkLoc; + } + + public String getCheckLoc() { + return checkLoc; + } + public void setCheckStatus(String checkStatus) { + this.checkStatus = checkStatus; + } + + public String getCheckStatus() { + return checkStatus; + } + public void setCheckManCode(String checkManCode) { + this.checkManCode = checkManCode; + } + + public String getCheckManCode() { + return checkManCode; + } + public void setCheckManName(String checkManName) { + this.checkManName = checkManName; + } + + public String getCheckManName() { + return checkManName; + } + public void setCheckTime(Date checkTime) { + this.checkTime = checkTime; + } + + public Date getCheckTime() { + return checkTime; + } + public void setCheckResult(String checkResult) { + this.checkResult = checkResult; + } + + public String getCheckResult() { + return checkResult; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + public void setCheckType(String checkType) { + this.checkType = checkType; + } + + public String getCheckType() { + return checkType; + } + + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + + public void setSampleQuality(BigDecimal sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getSampleQuality() { + return sampleQuality; + } + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public String getTypeCode() { + return typeCode; + } + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public String getOrderType() { + return orderType; + } + + public String getIncomeTimeStart() { + return incomeTimeStart; + } + + public void setIncomeTimeStart(String incomeTimeStart) { + this.incomeTimeStart = incomeTimeStart; + } + + public String getIncomeTimeEnd() { + return incomeTimeEnd; + } + + public void setIncomeTimeEnd(String incomeTimeEnd) { + this.incomeTimeEnd = incomeTimeEnd; + } + + public String getCheckTimeStart() { + return checkTimeStart; + } + + public void setCheckTimeStart(String checkTimeStart) { + this.checkTimeStart = checkTimeStart; + } + + public String getCheckTimeEnd() { + return checkTimeEnd; + } + + public void setCheckTimeEnd(String checkTimeEnd) { + this.checkTimeEnd = checkTimeEnd; + } + + public List getDefects() { + return defects; + } + + public void setDefects(List defects) { + this.defects = defects; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("checkNo", getCheckNo()) + .append("incomeBatchNo", getIncomeBatchNo()) + .append("orderNo", getOrderNo()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quality", getQuality()) + .append("unit", getUnit()) + .append("supplierCode", getSupplierCode()) + .append("supplierName", getSupplierName()) + .append("incomeTime", getIncomeTime()) + .append("checkLoc", getCheckLoc()) + .append("checkStatus", getCheckStatus()) + .append("checkManCode", getCheckManCode()) + .append("checkManName", getCheckManName()) + .append("checkTime", getCheckTime()) + .append("checkResult", getCheckResult()) + .append("status", getStatus()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .append("delFlag", getDelFlag()) + .append("checkType", getCheckType()) + .append("nookQuality", getNoOkQuality()) + .append("sampleQuality", getSampleQuality()) + .append("aNoOkquality", getaNoOkquality()) + .append("bNoOkquality", getbNoOkquality()) + .append("cNoOkquality", getcNoOkquality()) + .append("typeCode", getTypeCode()) + .append("orderType", getOrderType()) + .toString(); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java index d23ad596..ef629586 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java @@ -90,6 +90,51 @@ public class QcCheckUnqualified extends BaseEntity { private String typeCode; private String sampleQuality; private String noOkQuality; + private String startManCode; + private String startManName; + private Date startTime; + private String startOaStatus; + private String startOaMsg; + + public String getStartOaMsg() { + return startOaMsg; + } + + public void setStartOaMsg(String startOaMsg) { + this.startOaMsg = startOaMsg; + } + + public String getStartOaStatus() { + return startOaStatus; + } + + public void setStartOaStatus(String startOaStatus) { + this.startOaStatus = startOaStatus; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public String getStartManCode() { + return startManCode; + } + + public void setStartManCode(String startManCode) { + this.startManCode = startManCode; + } + + public String getStartManName() { + return startManName; + } + + public void setStartManName(String startManName) { + this.startManName = startManName; + } public String getSampleQuality() { return sampleQuality; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java new file mode 100644 index 00000000..5e6c6d19 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java @@ -0,0 +1,68 @@ +package com.op.quality.mapper; + +import java.util.List; + +import com.op.quality.domain.QcCheckTaskInventory; +import com.op.quality.domain.QcCheckTaskProduce; +import org.apache.ibatis.annotations.Mapper; + +/** + * 库存检验任务Mapper接口 + * + * @author Open Platform + * @date 2024-01-12 + */ +@Mapper +public interface QcCheckTaskInventoryMapper { + /** + * 查询库存检验任务 + * + * @param recordId 库存检验任务主键 + * @return 库存检验任务 + */ + public QcCheckTaskInventory selectQcCheckTaskInventoryByRecordId(String recordId); + + /** + * 查询库存检验任务列表 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 库存检验任务集合 + */ + public List selectQcCheckTaskInventoryList(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 新增库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + public int insertQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 修改库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + public int updateQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 删除库存检验任务 + * + * @param recordId 库存检验任务主键 + * @return 结果 + */ + public int deleteQcCheckTaskInventoryByRecordId(String recordId); + + /** + * 批量删除库存检验任务 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteQcCheckTaskInventoryByRecordIds(String[] recordIds); + + int getTodayMaxNum(QcCheckTaskInventory qcCheckTaskInventory); + + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckReportInventoryService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckReportInventoryService.java new file mode 100644 index 00000000..d4c46755 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckReportInventoryService.java @@ -0,0 +1,78 @@ +package com.op.quality.service; + +import com.op.quality.domain.QcBomComponent; +import com.op.quality.domain.QcCheckReportIncome; +import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcSupplier; +import com.op.system.api.domain.SysUser; + +import java.util.List; + +/** + * 来料报告Service接口 + * + * @author Open Platform + * @date 2023-10-19 + */ +public interface IQcCheckReportInventoryService { + /** + * 查询来料报告 + * + * @param recordId 来料报告主键 + * @return 来料检验 + */ + public QcCheckReportIncome selectQcCheckReportIncomeByRecordId(String recordId); + + /** + * 查询来料报告列表 + * + * @param qcCheckReportIncome 来料报告 + * @return 来料检验集合 + */ + public List selectQcCheckReportIncomeList(QcCheckReportIncome qcCheckReportIncome); + + /** + * 新增来料报告 + * + * @param qcCheckReportIncome 来料报告 + * @return 结果 + */ + public int insertQcCheckReportIncome(QcCheckReportIncome qcCheckReportIncome); + + /** + * 修改来料报告 + * + * @param qcCheckReportIncome 来料报告 + * @return 结果 + */ + public int updateQcCheckReportIncome(QcCheckReportIncome qcCheckReportIncome); + + /** + * 批量删除来料报告 + * + * @param recordIds 需要删除的来料报告主键集合 + * @return 结果 + */ + public int deleteQcCheckReportIncomeByRecordIds(String[] recordIds); + + /** + * 删除来料报告信息 + * + * @param recordId 来料报告主键 + * @return 结果 + */ + public int deleteQcCheckReportIncomeByRecordId(String recordId); + + public List getQcListBom(QcBomComponent bomComponent); + + public List getQcListSupplier(QcSupplier qcSupplier); + + public List getQcListUser(SysUser sysUser); + + int updateIncomeStatus(QcCheckReportIncome qcCheckReportIncome); + + List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail); + + public List getPrintData(QcCheckReportIncome qcCheckReportIncome); + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java new file mode 100644 index 00000000..88c7eb6a --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskInventoryService.java @@ -0,0 +1,60 @@ +package com.op.quality.service; + +import java.util.List; +import com.op.quality.domain.QcCheckTaskInventory; + +/** + * 库存检验任务Service接口 + * + * @author Open Platform + * @date 2024-01-12 + */ +public interface IQcCheckTaskInventoryService { + /** + * 查询库存检验任务 + * + * @param recordId 库存检验任务主键 + * @return 库存检验任务 + */ + public QcCheckTaskInventory selectQcCheckTaskInventoryByRecordId(String recordId); + + /** + * 查询库存检验任务列表 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 库存检验任务集合 + */ + public List selectQcCheckTaskInventoryList(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 新增库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + public int insertQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 修改库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + public int updateQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory); + + /** + * 批量删除库存检验任务 + * + * @param recordIds 需要删除的库存检验任务主键集合 + * @return 结果 + */ + public int deleteQcCheckTaskInventoryByRecordIds(String[] recordIds); + + /** + * 删除库存检验任务信息 + * + * @param recordId 库存检验任务主键 + * @return 结果 + */ + public int deleteQcCheckTaskInventoryByRecordId(String recordId); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportInventoryServiceImpl.java new file mode 100644 index 00000000..8b99ab6b --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportInventoryServiceImpl.java @@ -0,0 +1,206 @@ +package com.op.quality.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.*; +import com.op.quality.mapper.QcCheckReportIncomeMapper; +import com.op.quality.mapper.QcCheckTaskDetailMapper; +import com.op.quality.mapper.QcCheckTypeProjectMapper; +import com.op.quality.mapper.QcMaterialGroupDetailMapper; +import com.op.quality.service.IQcCheckReportIncomeService; +import com.op.quality.service.IQcCheckReportInventoryService; +import com.op.system.api.domain.SysUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; + +/** + * 来料检验Service业务层处理 + * + * @author Open Platform + * @date 2023-10-19 + */ +@Service +public class QcCheckReportInventoryServiceImpl implements IQcCheckReportInventoryService { + @Autowired + private QcCheckReportIncomeMapper qcCheckReportIncomeMapper; + + @Autowired + private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; + + @Autowired + private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper; + + @Autowired + private QcCheckTaskDetailMapper qcCheckTaskDetailMapper; + + /** + * 查询来料检验 + * + * @param recordId 来料检验主键 + * @return 来料检验 + */ + @Override + @DS("#header.poolName") + public QcCheckReportIncome selectQcCheckReportIncomeByRecordId(String recordId) { + return qcCheckReportIncomeMapper.selectQcCheckReportIncomeByRecordId(recordId); + } + + /** + * 查询来料检验列表 + * + * @param qcCheckReportIncome 来料检验 + * @return 来料检验 + */ + @Override + @DS("#header.poolName") + public List selectQcCheckReportIncomeList(QcCheckReportIncome qcCheckReportIncome) { + qcCheckReportIncome.setDelFlag("0"); + qcCheckReportIncome.setTypeCode("inventory"); + return qcCheckReportIncomeMapper.selectQcCheckReportIncomeList(qcCheckReportIncome); + } + + /** + * 新增来料检验 + * + * @param qcCheckReportIncome 来料检验 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcCheckReportIncome(QcCheckReportIncome qcCheckReportIncome) { + + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckReportIncomeMapper.getTodayMaxNum(qcCheckReportIncome); + String liushuiStr = String.format("%04d", liushuiNum); + + String createBy = SecurityUtils.getUsername(); + Date nowDate= DateUtils.getNowDate(); + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_",""); + + qcCheckReportIncome.setCheckNo(bpDD+liushuiStr); + + /**qc_check_task_income**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckReportIncome.setRecordId(beLongId); + qcCheckReportIncome.setFactoryCode(factoryCode); + qcCheckReportIncome.setCreateTime(nowDate); + qcCheckReportIncomeMapper.insertQcCheckReportIncome(qcCheckReportIncome); + + /**取检测项**/ + QcCheckTypeProject qctp= new QcCheckTypeProject(); + qctp.setTypeId(qcCheckReportIncome.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckReportIncome.getMaterialCode());//特性 + /**qc_check_type_project**/ + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + if(CollectionUtils.isEmpty(items)){ + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckReportIncome.getMaterialCode()); + if(group == null){ + return 0;//没有找到检测项目 + } + qctp.setGroupId(group.getGroupId());//共性 + items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + } + + /**qc_check_task_detail**/ + if(CollectionUtils.isEmpty(items)){ + return 0;//没有找到检测项目 + } + + for(QcCheckTaskDetail item:items){ + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("N"); + } + return qcCheckTaskDetailMapper.addBatch(items); + } + + /** + * 修改来料检验 + * + * @param qcCheckReportIncome 来料检验 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcCheckReportIncome(QcCheckReportIncome qcCheckReportIncome) { + qcCheckReportIncome.setUpdateTime(DateUtils.getNowDate()); + return qcCheckReportIncomeMapper.updateQcCheckReportIncome(qcCheckReportIncome); + } + + /** + * 批量删除来料检验 + * + * @param recordIds 需要删除的来料检验主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckReportIncomeByRecordIds(String[] recordIds) { + return qcCheckReportIncomeMapper.deleteQcCheckReportIncomeByRecordIds(recordIds); + } + + /** + * 删除来料检验信息 + * + * @param recordId 来料检验主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckReportIncomeByRecordId(String recordId) { + return qcCheckReportIncomeMapper.deleteQcCheckReportIncomeByRecordId(recordId); + } + + @Override + @DS("#header.poolName") + public List getQcListBom(QcBomComponent bomComponent) { + return qcCheckReportIncomeMapper.getQcListBom(bomComponent); + } + + @Override + @DS("#header.poolName") + public List getQcListSupplier(QcSupplier qcSupplier) { + return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); + } + + @Override + @DS("master") + public List getQcListUser(SysUser sysUser) { + return qcCheckReportIncomeMapper.getQcListUser(sysUser); + } + + @Override + @DS("#header.poolName") + public int updateIncomeStatus(QcCheckReportIncome qcCheckReportIncome) { + return qcCheckReportIncomeMapper.updateQcCheckReportIncome(qcCheckReportIncome); + } + + @Override + @DS("#header.poolName") + public List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail) { + return qcCheckReportIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + } + + @Override + @DS("#header.poolName") + public List getPrintData(QcCheckReportIncome qcCheckReportIncome) { + return null; + } + +} 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 493ca14e..e799f5dd 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 @@ -58,6 +58,9 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @Autowired private QcCheckTaskWarehousingMapper qcCheckTaskWarehousingMapper; + @Autowired + private QcCheckTaskInventoryMapper qcCheckTaskInventoryMapper; + @Autowired private QcCheckUnqualifiedMapper qcCheckUnqualifiedMapper; @@ -79,7 +82,16 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @Override @DS("#header.poolName") public QcCheckTaskIncome selectQcCheckTaskIncomeByRecordId(String recordId) { - return qcCheckTaskIncomeMapper.selectQcCheckTaskIncomeByRecordId(recordId); + QcCheckTaskIncome qcCheckTaskIncome = qcCheckTaskIncomeMapper.selectQcCheckTaskIncomeByRecordId(recordId); + //获取拼接好的检验人员信息 + QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId); + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) { + qcCheckTaskIncome.setCheckManName(qcCheckTaskUser.getManNames()); + } + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) { + qcCheckTaskIncome.setCheckManCode(qcCheckTaskUser.getManCodes()); + } + return qcCheckTaskIncome; } /** @@ -128,7 +140,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { //个性 QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskIncome.getMaterialCode()); if(group == null){ - return 0;//没有找到检测项目 + return 0;//没有找到检测项目 } //共性 qctp.setGroupId(group.getGroupId()); @@ -376,10 +388,18 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { warehousing.setCheckResult(result); warehousing.setCheckTime(DateUtils.getNowDate()); warehousing.setCheckManCode(SecurityUtils.getUsername()); - n = qcCheckTaskWarehousingMapper.updateQcCheckTaskWarehousing(warehousing); + n = qcCheckTaskWarehousingMapper.updateQcCheckTaskWarehousing(warehousing); + } else if ("inventory".equals(qcCheckTaskIncome.getTypeCode())) { + QcCheckTaskInventory qcCheckTaskInventory = new QcCheckTaskInventory(); + qcCheckTaskInventory.setCheckStatus("2"); + qcCheckTaskInventory.setRecordId(recordId); + qcCheckTaskInventory.setCheckResult(result); + qcCheckTaskInventory.setCheckTime(DateUtils.getNowDate()); + qcCheckTaskInventory.setCheckManCode(SecurityUtils.getUsername()); + n = qcCheckTaskInventoryMapper.updateQcCheckTaskInventory(qcCheckTaskInventory); } - //不合格处理 + //不合格处理 if("N".equals(result)){ QcCheckUnqualified unqualified = new QcCheckUnqualified(); unqualified.setId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java new file mode 100644 index 00000000..00a53ae0 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java @@ -0,0 +1,289 @@ +package com.op.quality.service.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +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 com.op.quality.domain.*; +import com.op.quality.mapper.*; +import com.op.quality.service.IQcCheckTaskDefectService; +import com.op.quality.service.IQcCheckTaskUserService; +import com.op.system.api.domain.quality.QcUserMaterialDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.quality.service.IQcCheckTaskInventoryService; +import org.springframework.util.CollectionUtils; +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-01-12 + */ +@Service +public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventoryService { + protected Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired + private QcCheckTaskInventoryMapper qcCheckTaskInventoryMapper; + + @Autowired + private QcCheckTaskDetailMapper qcCheckTaskDetailMapper; + + @Autowired + private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; + @Autowired + private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper; + + @Autowired + private IQcCheckTaskUserService qcCheckTaskUserService; + + @Autowired + private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; + + @Autowired + private IQcCheckTaskDefectService qcCheckTaskDefectService; + + /** + * 查询库存检验任务 + * + * @param recordId 库存检验任务主键 + * @return 库存检验任务 + */ + @Override + @DS("#header.poolName") + public QcCheckTaskInventory selectQcCheckTaskInventoryByRecordId(String recordId) { + QcCheckTaskInventory qcCheckTaskInventory = qcCheckTaskInventoryMapper.selectQcCheckTaskInventoryByRecordId(recordId); + //获取拼接好的检验人员信息 + QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId); + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) { + qcCheckTaskInventory.setCheckManName(qcCheckTaskUser.getManNames()); + } + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) { + qcCheckTaskInventory.setCheckManCode(qcCheckTaskUser.getManCodes()); + } + //获取不良品检验信息 + List qcCheckTaskDefectList = qcCheckTaskDefectService.selectDefectByBelongTo(recordId); + if (!CollectionUtils.isEmpty(qcCheckTaskDefectList)) { + qcCheckTaskInventory.setDefects(qcCheckTaskDefectList); + } + return qcCheckTaskInventory; + } + + /** + * 查询库存检验任务列表 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 库存检验任务 + */ + @Override + @DS("#header.poolName") + public List selectQcCheckTaskInventoryList(QcCheckTaskInventory qcCheckTaskInventory) { + qcCheckTaskInventory.setDelFlag("0"); + qcCheckTaskInventory.setTypeCode("inventory"); + return qcCheckTaskInventoryMapper.selectQcCheckTaskInventoryList(qcCheckTaskInventory); + } + + /** + * 新增库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory) { + String factoryCode = ""; + if(StringUtils.isNotBlank(qcCheckTaskInventory.getFactoryCode())){ + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskInventory.getFactoryCode()); + factoryCode= qcCheckTaskInventory.getFactoryCode(); + }else{ + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + factoryCode = request.getHeader(key.substring(8)).replace("ds_",""); + } + + qcCheckTaskInventory.setCreateTime(DateUtils.getNowDate()); + + String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); + int liushuiNum = qcCheckTaskInventoryMapper.getTodayMaxNum(qcCheckTaskInventory); + String liushuiStr = String.format("%04d", liushuiNum); + + String createBy = SecurityUtils.getUsername(); + Date nowDate = DateUtils.getNowDate(); + + qcCheckTaskInventory.setCheckNo(bpDD+liushuiStr); + + /**取检测项**/ + QcCheckTypeProject qctp= new QcCheckTypeProject(); + qctp.setTypeId(qcCheckTaskInventory.getCheckType());//生产过程检验 + qctp.setMaterialCode(qcCheckTaskInventory.getMaterialCode());//特性 + /**qc_check_type_project**/ + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + if(CollectionUtils.isEmpty(items)){ + /**qc_material_group_detail**/ + QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskInventory.getMaterialCode()); + if(group == null){ + return 0;//没有找到检测项目 + } + qctp.setGroupId(group.getGroupId());//共性 + items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + } + + /**qc_check_task_detail**/ + if(CollectionUtils.isEmpty(items)){ + return 0;//没有找到检测项目 + } + + /**qc_check_task**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskInventory.setRecordId(beLongId); + qcCheckTaskInventory.setFactoryCode(factoryCode); + qcCheckTaskInventory.setCreateTime(nowDate); + qcCheckTaskInventory.setTypeCode("inventory");//大检验节点 + /**qc_task_user start**/ + if(StringUtils.isNotBlank(qcCheckTaskInventory.getCheckManName())){ + String checkManName = qcCheckTaskInventory.getCheckManName(); + String checkManCode = qcCheckTaskInventory.getCheckManCode(); + qcCheckTaskInventory.setCheckManName(""); + qcCheckTaskInventory.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskInventory.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//上位机 + qcCheckTaskInventory.setCheckManName(""); + qcCheckTaskInventory.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskInventory.getMaterialCode()); + if(!CollectionUtils.isEmpty(users)){ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskInventory.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); + } + } + /** 不良品数据插入 */ + BigDecimal noOkQuality = new BigDecimal(0); + List defectList = qcCheckTaskInventory.getDefects(); + if (!CollectionUtils.isEmpty(defectList)) { + for (QcCheckTaskDefect defect : defectList) { + defect.setBelongTo(beLongId); + qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); + noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + } + } + qcCheckTaskInventory.setNoOkQuality(noOkQuality); + + /**qc_check_task**/ + qcCheckTaskInventoryMapper.insertQcCheckTaskInventory(qcCheckTaskInventory); + + /**qc_check_task_detail**/ + for(QcCheckTaskDetail item:items){ + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("N"); + } + return qcCheckTaskDetailMapper.addBatch(items); + } + + /** + * 修改库存检验任务 + * + * @param qcCheckTaskInventory 库存检验任务 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcCheckTaskInventory(QcCheckTaskInventory qcCheckTaskInventory) { + qcCheckTaskInventory.setUpdateTime(DateUtils.getNowDate()); + /** qc_task_user**/ + String checkManName = qcCheckTaskInventory.getCheckManName(); + String checkManCode = qcCheckTaskInventory.getCheckManCode(); + qcCheckTaskInventory.setCheckManName(""); + qcCheckTaskInventory.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskInventory.getCheckNo()); + qcCheckTaskUser.setBelongTo(qcCheckTaskInventory.getRecordId()); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList); + /** 不良品数据修改 **/ + BigDecimal noOkQuality = new BigDecimal(0); + List defectList = qcCheckTaskInventory.getDefects(); + String belongTo = qcCheckTaskInventory.getRecordId(); + //不是空执行下一步,空不做操作 + if (!CollectionUtils.isEmpty(defectList)) { + qcCheckTaskDefectService.deleteQcCheckTaskDefectByBelongTo(belongTo); + for (QcCheckTaskDefect defect : defectList) { + defect.setBelongTo(belongTo); + qcCheckTaskDefectService.insertQcCheckTaskDefect(defect); + noOkQuality = noOkQuality.add(defect.getNoOkQuality()==null?new BigDecimal("0"):defect.getNoOkQuality()); + } + } + qcCheckTaskInventory.setNoOkQuality(noOkQuality); + + return qcCheckTaskInventoryMapper.updateQcCheckTaskInventory(qcCheckTaskInventory); + } + + /** + * 批量删除库存检验任务 + * + * @param recordIds 需要删除的库存检验任务主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckTaskInventoryByRecordIds(String[] recordIds) { + return qcCheckTaskInventoryMapper.deleteQcCheckTaskInventoryByRecordIds(recordIds); + } + + /** + * 删除库存检验任务信息 + * + * @param recordId 库存检验任务主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckTaskInventoryByRecordId(String recordId) { + return qcCheckTaskInventoryMapper.deleteQcCheckTaskInventoryByRecordId(recordId); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index af22a9c0..9f4f7f22 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -62,7 +62,16 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @Override @DS("#header.poolName") public QcCheckTaskWarehousing selectQcCheckTaskWarehousingByRecordId(String recordId) { - return qcCheckTaskWarehousingMapper.selectQcCheckTaskWarehousingByRecordId(recordId); + QcCheckTaskWarehousing checkTaskWarehousing = qcCheckTaskWarehousingMapper.selectQcCheckTaskWarehousingByRecordId(recordId); + //获取拼接好的检验人员信息 + QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId); + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) { + checkTaskWarehousing.setCheckManName(qcCheckTaskUser.getManNames()); + } + if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) { + checkTaskWarehousing.setCheckManCode(qcCheckTaskUser.getManCodes()); + } + return checkTaskWarehousing; } /** @@ -86,10 +95,15 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertQcCheckTaskWarehousing(QcCheckTaskWarehousing qcCheckTaskWarehousing) { if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getFactoryCode())){ DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskWarehousing.getFactoryCode()); + }else{ + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + qcCheckTaskWarehousing.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); } String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate()); @@ -145,6 +159,7 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin qcCheckTaskUser.setCheckManCode(splitCodes[i]); qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUser.setFactoryCode(factoryCode); qcCheckTaskUserList.add(qcCheckTaskUser); } //检验人插入 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java index adb2181b..6ac69090 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java @@ -1,9 +1,21 @@ package com.op.quality.service.impl; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcCheckProject; +import com.op.quality.domain.QcCheckTaskIncome; +import com.op.quality.mapper.QcCheckTaskIncomeMapper; +import com.op.system.api.RemoteOpenService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckUnqualifiedMapper; @@ -18,9 +30,16 @@ import com.op.quality.service.IQcCheckUnqualifiedService; */ @Service public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckUnqualifiedMapper qcCheckUnqualifiedMapper; + @Autowired + private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; + + @Autowired + private RemoteOpenService remoteOpenService; + /** * 查询不合格处理 * @@ -67,8 +86,40 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService @Override @DS("#header.poolName") public int updateQcCheckUnqualified(QcCheckUnqualified qcCheckUnqualified) { - qcCheckUnqualified.setUpdateTime(DateUtils.getNowDate()); - return qcCheckUnqualifiedMapper.updateQcCheckUnqualified(qcCheckUnqualified); + Date nowTime = DateUtils.getNowDate(); + qcCheckUnqualified.setUpdateTime(nowTime); + qcCheckUnqualified.setStartManCode(SecurityUtils.getUsername()); + qcCheckUnqualified.setStartTime(nowTime); + + //发起来料检验OA流程 + AjaxResult oaR = new AjaxResult(); + QcCheckUnqualified taskIfo = qcCheckUnqualifiedMapper.selectQcCheckUnqualifiedById(qcCheckUnqualified.getId()); + taskIfo.setRemark(qcCheckUnqualified.getRemark()); + if("material".equals(taskIfo.getTypeCode())) { + //ZL0010-来料检验不合格控制流程 + oaR = this.createLLOA(taskIfo); + }else if("produce".equals(taskIfo.getTypeCode())){ + //ZL0030-品质异常流程 + }else if("product".equals(taskIfo.getTypeCode())) { + //ZL0020-成品检验控制流程 + oaR = this.createProductOA(taskIfo); + } + if(oaR!=null ){ + if((oaR.get("code").toString()).equals("200")){ + /**qc_check_unqualified**/ + qcCheckUnqualified.setRequestid(oaR.get("data").toString()); + qcCheckUnqualified.setStartOaStatus("1"); + int m = qcCheckUnqualifiedMapper.updateQcCheckUnqualified(qcCheckUnqualified); + return m; + }else{ + qcCheckUnqualified.setStartOaStatus("2"); + qcCheckUnqualified.setStartOaMsg(oaR.get("msg").toString()); + qcCheckUnqualifiedMapper.updateQcCheckUnqualified(qcCheckUnqualified); + return 0; + } + + } + return 0; } /** @@ -94,4 +145,97 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService public int deleteQcCheckUnqualifiedById(String id) { return qcCheckUnqualifiedMapper.deleteQcCheckUnqualifiedById(id); } + + /*来料检验不良OA流程 + * CQ 厂区、 OEMCM 厂名 、 LLLB 来料类别【0、1】、MATNR 物料编号、MAKTX 物料名称、suppliernum 供应商编码 + * supplier 供应商名称、CHARG 生产批号、comeQty 来料数量、testDate 检验日期 、 JYBH 检验编号、 + * BJY 仓储报检人(OEM产品提报人)、WLLY 物料来源、ZCF 转出方、 ZCOEMCM 转出OEM厂名、 + * memo 不合格情况描述 、PZGLBZG QC主管 + */ + private AjaxResult createLLOA(QcCheckUnqualified task){ + + QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); + //发起来料检验OA流程 + Map paramMap = new HashMap<>(); + paramMap.put("user",SecurityUtils.getUsername());//提交人工号 + paramMap.put("requestLevel",0);//流程紧急度 + paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称 + paramMap.put("workflowId",26235);//该流程对应的唯- workFlowld + + StringBuffer mainObject = new StringBuffer(); + mainObject.append("{"); + mainObject.append("\"CQ\":"+detailInfo.getFactoryCode());//厂区 + mainObject.append(",\"LLLB\":"+0);//来料类别【0、1】 + mainObject.append(",\"MATNR\":"+"\""+detailInfo.getMaterialCode()+"\"");//物料编码 + mainObject.append(",\"MAKTX\":"+"\""+detailInfo.getMaterialName()+"\"");//物料名称 + mainObject.append(",\"suppliernum\":"+"\""+detailInfo.getSupplierCode()+"\"");//供应商编码 + mainObject.append(",\"supplier\":"+"\""+detailInfo.getSupplierName()+"\"");//供应商名称 + mainObject.append(",\"CHARG\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号 + mainObject.append(",\"comeQty\":"+"\""+detailInfo.getQuality()+"\"");//来料数量 + mainObject.append(",\"memo\":"+"\""+task.getRemark()+"\"");//不合格情况描述 + mainObject.append("}"); + + paramMap.put("mainObject",mainObject.toString()); + logger.info("流程Id 26235:"+ JSONObject.toJSONString(paramMap)); + AjaxResult oaR = remoteOpenService.OAInspection(paramMap); + logger.info("流程Id 26235:"+ JSONObject.toJSONString(oaR)); + return oaR; + } + /*成品入库不良OA流程 + * ZL0020-成品检验控制流程:"workflowId": 26234 + * + * --------主表------- + * PGBCJ 申请部门/SSCJ 所属车间/ZRPSN报检人/GJZ关键字/SCLX生产类型/OEM OEM厂名/DH 单号/DW单位/MEMO01 不合格描述/ + * MEMO03 备注/SFXZG 是否需要QC主管审核/PGZG QC主管 + * PGZRJL 品管主任 + * ----------明细表--- + * 请求示例:{"colNames":"PROCODE,PRONAME,SCCODE......","details":[{"PROCODE":"","PRONAME":"",.....},{},{},.....]} + * PROCODE 产品编码、PRONAME 产品名称、SCCODE 批次号、SCTOTAL 数量、 + * BJDATE 报检日期、JYCODE 检验编号、JYDATE 检验日期、JYRESULT检验结果:0合格 2不合格、 + * PROCODEBAK 、BZ 备注、CPCYS 产品抽样数(PC)、JYBHGMS 不合格情况描述*/ + private AjaxResult createProductOA(QcCheckUnqualified task){ + + QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId()); + + //发起来料检验OA流程 + Map paramMap = new HashMap<>(); + paramMap.put("user","999999");//提交人工号qcCheckTaskIncome.getUpdateBy() + paramMap.put("requestLevel",0);//流程紧急度 + paramMap.put("requestName","ZL0020-成品检验控制流程");//流程名称 + paramMap.put("workflowId",26234);//该流程对应的唯- workFlowld + + StringBuffer mainObject = new StringBuffer(); + mainObject.append("{"); + mainObject.append("\"SSCJ\":"+detailInfo.getSupplierName());//所属车间 + mainObject.append(",\"ZRPSN\":"+"\""+SecurityUtils.getUsername()+"\"");//报检人 + mainObject.append(",\"OEM\":"+"\""+detailInfo.getFactoryCode()+"\"");//OEM厂名 + mainObject.append(",\"DH\":"+"\""+detailInfo.getOrderNo()+"\"");//单号 + mainObject.append(",\"MEMO01\":"+"\""+task.getRemark()+"\"");//不合格情况描述 + mainObject.append("}"); + paramMap.put("mainObject",mainObject.toString()); + + StringBuffer detailObject = new StringBuffer(); + detailObject.append("{"); + detailObject.append("\"colNames\":\"PROCODE,PRONAME,SCCODE,SCTOTAL,BJDATE,JYCODE,JYDATE,JYRESULT,CPCYS,JYBHGMS\""); + detailObject.append(",\"details\":["); + + detailObject.append("{\"PROCODE\":\""+detailInfo.getMaterialCode()+"\"},");//产品编码 + detailObject.append("{\"PRONAME\":\""+detailInfo.getMaterialName()+"\"},");//产品名称 + detailObject.append("{\"SCCODE\":\""+detailInfo.getIncomeBatchNo()+"\"},");//批次号 + detailObject.append("{\"SCTOTAL\":\""+detailInfo.getQuality()+"\"},");//数量 + detailObject.append("{\"BJDATE\":\""+detailInfo.getCreateTime()+"\"},");//报检日期 + detailObject.append("{\"JYCODE\":\""+detailInfo.getCheckNo()+"\"},");// 检验编号 + detailObject.append("{\"JYDATE\":\""+detailInfo.getCheckTime()+"\"},");// 检验日期 + detailObject.append("{\"JYRESULT\":\""+(detailInfo.getCheckResult().equals("Y")?"0":"2")+"\"},");//检验结果:0合格 2不合格 + detailObject.append("{\"CPCYS\":\""+detailInfo.getQuality()+"\"},");// 产品抽样数(PC) + detailObject.append("{\"JYBHGMS\":\""+task.getRemark()+"\"}");// 不合格情况描述 + + detailObject.append("]}"); + paramMap.put("mainObject",detailObject.toString()); + + logger.info("流程Id 26234:"+ JSONObject.toJSONString(paramMap)); + AjaxResult oaR = remoteOpenService.OAInspection(paramMap); + logger.info("流程Id 26234:"+ JSONObject.toJSONString(oaR)); + return oaR; + } } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 7b66cc70..6b657b7d 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -350,21 +350,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.supplier_name supplierName, qct.income_batch_no incomeBatchNo, qct.quality, - t.remark + qct.factory_code factoryCode, + case when pow.workorder_code_sap is not null then pow.workorder_code_sap + else qct.order_no end orderNo, + qct.create_time createTime, + qct.check_no checkNo, + qct.check_time checkTime, + qct.check_result checkResult from qc_check_task qct - left join( - SELECT - belong_to, - STUFF( - (SELECT ';' + rule_name+':'+actual_value - FROM qc_check_task_detail - WHERE belong_to = qctd.belong_to - FOR xml path('') - ),1,1,'' - ) remark - FROM qc_check_task_detail qctd where qctd.del_flag = '0' and belong_to=#{recordId} - GROUP by qctd.belong_to - ) t on qct.record_id = t.belong_to + left join pro_order_workorder pow on pow.workorder_code = qct.order_no where qct.record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml new file mode 100644 index 00000000..68d96a54 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit, supplier_code, + supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, + status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, + check_type, noOk_quality, sample_quality, aNoOkquality, bNoOkquality, cNoOkquality, type_code, order_type + from qc_check_task + + + + + + + + insert into qc_check_task + + record_id, + check_no, + income_batch_no, + order_no, + material_code, + material_name, + quality, + unit, + supplier_code, + supplier_name, + income_time, + check_loc, + check_status, + check_man_code, + check_man_name, + check_time, + check_result, + status, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + check_type, + noOk_quality, + sample_quality, + aNoOkquality, + bNoOkquality, + cNoOkquality, + type_code, + order_type, + + + #{recordId}, + #{checkNo}, + #{incomeBatchNo}, + #{orderNo}, + #{materialCode}, + #{materialName}, + #{quality}, + #{unit}, + #{supplierCode}, + #{supplierName}, + #{incomeTime}, + #{checkLoc}, + #{checkStatus}, + #{checkManCode}, + #{checkManName}, + #{checkTime}, + #{checkResult}, + #{status}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{checkType}, + #{noOkQuality}, + #{sampleQuality}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, + #{typeCode}, + #{orderType}, + + + + + update qc_check_task + + check_no = #{checkNo}, + income_batch_no = #{incomeBatchNo}, + order_no = #{orderNo}, + material_code = #{materialCode}, + material_name = #{materialName}, + quality = #{quality}, + unit = #{unit}, + supplier_code = #{supplierCode}, + supplier_name = #{supplierName}, + income_time = #{incomeTime}, + check_loc = #{checkLoc}, + check_status = #{checkStatus}, + check_man_code = #{checkManCode}, + check_man_name = #{checkManName}, + check_time = #{checkTime}, + check_result = #{checkResult}, + status = #{status}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + del_flag = #{delFlag}, + check_type = #{checkType}, + noOk_quality = #{noOkQuality}, + sample_quality = #{sampleQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, + type_code = #{typeCode}, + order_type = #{orderType}, + + where record_id = #{recordId} + + + + delete from qc_check_task where record_id = #{recordId} + + + + delete from qc_check_task where record_id in + + #{recordId} + + + + + \ No newline at end of file diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index b31c6fc4..160e1635 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -58,10 +58,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"