报工物料调整

master
zhaoxiaolin 1 year ago
parent e69adf1ea1
commit cb40968a0f

@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.MesReportWorkConsumeTabs;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
@ -148,6 +149,16 @@ public class MesReportWorkConsumeController extends BaseController {
return rlist;
}
/**
*
**/
@RequiresPermissions("mes:reportWork:report")
@GetMapping("/getAllLevelConsumeList")
public List getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsumeTabs> rlist = mesReportWorkConsumeService.getAllLevelConsumeList(mesReportWorkConsume);
return rlist;
}
@PostMapping("/submitConsumePS")
public AjaxResult submitConsumePS(@RequestBody List<MesReportWorkConsume> mesReportWorkConsume) {
return toAjax(mesReportWorkConsumeService.submitConsumePS(mesReportWorkConsume));

@ -13,15 +13,21 @@ import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.poi.ExcelMapUtil;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.*;
import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@ -46,10 +52,11 @@ import com.op.common.core.utils.poi.ExcelUtilDailyReport;
* @date 2023-08-24
*/
@RestController
@RequestMapping("/reportWork")
@RequestMapping("./reportWork")
public class MesReportWorkController extends BaseController {
@Autowired
private IMesReportWorkService mesReportWorkService;
/**
*
*/
@ -444,7 +451,11 @@ public class MesReportWorkController extends BaseController {
e.printStackTrace();
}
}
/**获取母子报工记录**/
/**获取最新领料单**/
@PostMapping("/getNewPrepareData")
public List<MesPrepareDetailDTO> getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) {
return mesReportWorkService.getNewPrepareData(mesPrepareDetail);
}
}

@ -0,0 +1,46 @@
package com.op.mes.domain;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.List;
/**
* mes_report_work_consume
*
* @author Open Platform
* @date 2023-08-24
*/
public class MesReportWorkConsumeTabs extends BaseEntity {
private static final long serialVersionUID = 1L;
private String libId;
private String title;
private List<MesReportWorkConsume> libList;
public String getLibId() {
return libId;
}
public void setLibId(String libId) {
this.libId = libId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<MesReportWorkConsume> getLibList() {
return libList;
}
public void setLibList(List<MesReportWorkConsume> libList) {
this.libList = libList;
}
}

@ -28,7 +28,7 @@ public class ProOrderWorkorder extends TreeEntity {
*/
@Excel(name = "工单编码")
private String workorderCode;
private String workorderCodeSap;
/**
*
*/
@ -209,6 +209,14 @@ public class ProOrderWorkorder extends TreeEntity {
private String batchCode;
private String batchId;
public String getWorkorderCodeSap() {
return workorderCodeSap;
}
public void setWorkorderCodeSap(String workorderCodeSap) {
this.workorderCodeSap = workorderCodeSap;
}
public String getBatchCode() {
return batchCode;
}

@ -4,6 +4,7 @@ import java.util.List;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.mes.domain.MesReportWorkConsumeTabs;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
import com.op.system.api.domain.mes.BaseTeamTDTO;
@ -84,4 +85,6 @@ public interface IMesReportWorkConsumeService {
int submitReportInfo(MesReportWork mesReportWork);
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
List<MesReportWorkConsumeTabs> getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume);
}

@ -10,6 +10,7 @@ import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
/**
@ -108,4 +109,6 @@ public interface IMesReportWorkService {
List<MesReportWork> getPutInOrderList(MesReportWork mesReportWorks);
List<MesReportWorkTabs> getAllLevelReportList(MesReportWork mesReportWork);
List<MesPrepareDetailDTO> getNewPrepareData(MesPrepareDetail mesPrepareDetail);
}

@ -11,7 +11,7 @@ import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.bean.BeanUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils;
import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.*;
import com.op.mes.mapper.MesReportWorkMapper;
import com.op.system.api.domain.dto.BaseBomDTO;
import com.op.system.api.domain.mes.BaseProductDTO;
@ -21,7 +21,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.mes.mapper.MesReportWorkConsumeMapper;
import com.op.mes.domain.MesReportWorkConsume;
import com.op.mes.service.IMesReportWorkConsumeService;
import org.springframework.util.CollectionUtils;
@ -260,4 +259,34 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
List<MesReportWorkConsume> dtos = mesReportWorkConsumeMapper.getBomList(mesReportWorkConsume);
return dtos;
}
@Override
@DS("#header.poolName")
public List<MesReportWorkConsumeTabs> getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume) {
List<MesReportWorkConsumeTabs> tabs = new ArrayList<>();
MesReportWorkConsumeTabs pTabs = new MesReportWorkConsumeTabs();
int i = 1;
pTabs.setLibId("consume"+i);
pTabs.setTitle("第"+i+"层工单物料损耗");
mesReportWorkConsume.setParentOrder("0");
List<MesReportWorkConsume> liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
pTabs.setLibList(liblist0);
tabs.add(pTabs);
ProOrderWorkorder sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(mesReportWorkConsume.getWorkorderCode());
while(sonWorkOrder!=null){
int xh = ++i;
MesReportWorkConsumeTabs sTabs = new MesReportWorkConsumeTabs();
sTabs.setLibId("consume"+xh);
sTabs.setTitle("第"+xh+"层工单物料损耗");
mesReportWorkConsume.setWorkorderCode(sonWorkOrder.getWorkorderCode());
List<MesReportWorkConsume> liblist = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
sTabs.setLibList(liblist);
tabs.add(sTabs);
sonWorkOrder = mesReportWorkMapper.getSonWorkOrder(sonWorkOrder.getWorkorderCode());
}
return tabs;
}
}

@ -18,10 +18,15 @@ import com.op.mes.domain.dto.LineChartDto;
import com.op.mes.domain.dto.LineChartSeriesDto;
import com.op.mes.domain.dto.SysFactoryDto;
import com.op.mes.service.IWCSInterfaceService;
import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.device.EquEquipmentDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.mes.mapper.MesReportWorkMapper;
@ -36,6 +41,12 @@ import org.springframework.util.CollectionUtils;
*/
@Service
public class MesReportWorkServiceImpl implements IMesReportWorkService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private RemoteSapService remoteSapService;
@Autowired
private MesReportWorkMapper mesReportWorkMapper;
@ -182,6 +193,50 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService {
return tabs;
}
@Override
@DS("#header.poolName")
public List<MesPrepareDetailDTO> getNewPrepareData(MesPrepareDetail mesPrepareDetail) {
Date createDate = DateUtils.getNowDate();
String workorderCodeSap = mesReportWorkMapper.getOrderByCode(mesPrepareDetail.getWorkorderCode()).getWorkorderCodeSap();
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]"+ "开始");
List<SapMaterialPreparation> sapMaterialPreparationList = remoteSapService.materialPreparation(workorderCodeSap).getData();
if (CollectionUtils.isEmpty(sapMaterialPreparationList)) {
logger.info("sap无领料单数据:"+mesPrepareDetail.getWorkorderCode());
}
/**mes_prepare_detail**/
List<MesPrepareDetailDTO> details = new ArrayList<>();
MesPrepareDetailDTO detail = null;
for (SapMaterialPreparation sap : sapMaterialPreparationList) {
detail = new MesPrepareDetailDTO();
detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号
detail.setMaterialCode(sap.getMATNR());//物料号
detail.setMaterailName(sap.getMAKTX());//物料描述(短文本)
detail.setFactoryCode(sap.getWERKS());//工厂
detail.setLocator(sap.getLGORT());//库存地点
detail.setNeedDate(sap.getBDTER());//组件的需求日期
detail.setQuantity(sap.getBDMNG());////需求量
detail.setFundQuanlity(sap.getZQLSL());//欠料数量
detail.setUnit(sap.getMEINS());//基本计量单位
detail.setRecoil(sap.getRGEKZ());//反冲标识
detail.setBuyFlag(sap.getDBSKZ());//直接采购标识
detail.setCreateBy(SecurityUtils.getUsername());
detail.setCreateTime(createDate);
details.add(detail);
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]"
+ sap.getRSPOS() + "," + sap.getMATNR() + "," +
sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," +
sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," +
sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()
);
}
logger.info("获取sap最新领料单" + mesPrepareDetail.getWorkorderCode() +"["+workorderCodeSap+"]" + "结束");
return details;
}
@Override
@DS("#header.poolName")
public int submitReportPS(List<MesReportWork> mesReportWorks) {

@ -81,7 +81,7 @@
left join mes_prepare mp on ow.workorder_code = mp.workorder_code
left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
where ow.belong_work_order = #{workorderCode}
order by mp.workorder_name desc
order by mpd.recoil
</select>
<insert id="insertMesPrepareDetail" parameterType="MesPrepareDetail">

@ -106,6 +106,7 @@
from mes_report_work_consume mrwc
where mrwc.del_flag = '0'
and mrwc.workorder_code = #{workorderCode}
order by mrwc.recoil
</select>
<select id="getSonConsumeList" resultType="com.op.mes.domain.MesReportWorkConsume">
select mrwc.record_id recordId,

@ -412,8 +412,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select workorder_code workorderCode,
parent_order parentOrder,
quantity_split quantitySplit,
unit
from pro_order_workorder where workorder_code = #{workorderCode}
unit,
workorder_code_sap workorderCodeSap
from pro_order_workorder
where workorder_code = #{workorderCode} and del_flag = '0'
</select>
<select id="getMesListUser" resultType="com.op.system.api.domain.SysUser">
select user_id userId,

@ -0,0 +1,109 @@
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.quality.domain.QcCheckTaskMarket;
import com.op.quality.service.IQcCheckTaskMarketService;
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 2024-01-12
*/
@RestController
@RequestMapping("/qcMarket")
public class QcCheckTaskMarketController extends BaseController {
@Autowired
private IQcCheckTaskMarketService qcCheckTaskMarketService;
/**
*
*/
@RequiresPermissions("quality:qcMarket:list")
@GetMapping("/list")
public TableDataInfo list(QcCheckTaskMarket qcCheckTaskMarket) {
//默认时间范围T 00:00:00~T+1 00:00:00
if (StringUtils.isEmpty(qcCheckTaskMarket.getIncomeTimeStart())) {
qcCheckTaskMarket.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";
qcCheckTaskMarket.setIncomeTimeEnd(dateEndStr);//end
}
startPage();
List<QcCheckTaskMarket> list = qcCheckTaskMarketService.selectQcCheckTaskMarketList(qcCheckTaskMarket);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:export")
@Log(title = "市场不良检验任务", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QcCheckTaskMarket qcCheckTaskMarket) {
List<QcCheckTaskMarket> list = qcCheckTaskMarketService.selectQcCheckTaskMarketList(qcCheckTaskMarket);
ExcelUtil<QcCheckTaskMarket> util = new ExcelUtil<QcCheckTaskMarket>(QcCheckTaskMarket.class);
util.exportExcel(response, list, "市场不良检验任务数据");
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:query")
@GetMapping(value = "/{recordId}")
public AjaxResult getInfo(@PathVariable("recordId") String recordId) {
return success(qcCheckTaskMarketService.selectQcCheckTaskMarketByRecordId(recordId));
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:add")
@Log(title = "市场不良检验任务", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody QcCheckTaskMarket qcCheckTaskMarket) {
int r = qcCheckTaskMarketService.insertQcCheckTaskMarket(qcCheckTaskMarket);
if (r > 0) {
return toAjax(r);
}
return error("添加失败:请检查物料的关联检测项");
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:edit")
@Log(title = "市场不良检验任务", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody QcCheckTaskMarket qcCheckTaskMarket) {
return toAjax(qcCheckTaskMarketService.updateQcCheckTaskMarket(qcCheckTaskMarket));
}
/**
*
*/
@RequiresPermissions("quality:qcMarket:remove")
@Log(title = "市场不良检验任务", businessType = BusinessType.DELETE)
@DeleteMapping("/{recordIds}")
public AjaxResult remove(@PathVariable String[] recordIds) {
return toAjax(qcCheckTaskMarketService.deleteQcCheckTaskMarketByRecordIds(recordIds));
}
}

@ -0,0 +1,558 @@
package com.op.quality.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* qc_check_task_market
*
* @author Open Platform
* @date 2024-01-12
*/
public class QcCheckTaskMarket 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;
/**
* 012
*/
@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;
/**
* 10
*/
@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;
/**
* 10
*/
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<QcCheckTaskDefect> 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<QcCheckTaskDefect> getDefects() {
return defects;
}
public void setDefects(List<QcCheckTaskDefect> 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();
}
}

@ -50,6 +50,24 @@ public class QcInterface extends BaseEntity {
private String productDateStart;
private String ProductDateEnd;
private String nameDate;
private List<String> dataBarArrays;
private List<String> dataLineArrays;
public List<String> getDataBarArrays() {
return dataBarArrays;
}
public void setDataBarArrays(List<String> dataBarArrays) {
this.dataBarArrays = dataBarArrays;
}
public List<String> getDataLineArrays() {
return dataLineArrays;
}
public void setDataLineArrays(List<String> dataLineArrays) {
this.dataLineArrays = dataLineArrays;
}
public String getNameDate() {
return nameDate;

@ -0,0 +1,67 @@
package com.op.quality.mapper;
import com.op.quality.domain.QcCheckTaskMarket;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mapper
*
* @author Open Platform
* @date 2024-01-12
*/
@Mapper
public interface QcCheckTaskMarketMapper {
/**
*
*
* @param recordId
* @return
*/
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param recordId
* @return
*/
public int deleteQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param recordIds
* @return
*/
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds);
int getTodayMaxNum(QcCheckTaskMarket qcCheckTaskMarket);
}

@ -35,7 +35,7 @@ public interface QcInterfaceMapper {
@MapKey("ymd")
Map<String, QcInterface> getYearNoOkHz(QcInterface qcInterface);
List<QcProCheck> getLineNames();
List<QcProCheck> getLineNames(String ymd);
@MapKey("ymd")
Map<String, QcInterface> getDayNoOkHz(QcInterface qcInterface);

@ -0,0 +1,61 @@
package com.op.quality.service;
import com.op.quality.domain.QcCheckTaskMarket;
import java.util.List;
/**
* Service
*
* @author Open Platform
* @date 2024-01-12
*/
public interface IQcCheckTaskMarketService {
/**
*
*
* @param recordId
* @return
*/
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket);
/**
*
*
* @param recordIds
* @return
*/
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds);
/**
*
*
* @param recordId
* @return
*/
public int deleteQcCheckTaskMarketByRecordId(String recordId);
}

@ -9,6 +9,7 @@ import com.op.quality.mapper.*;
import com.op.quality.service.IQcCheckReportProduceService;
import com.op.quality.service.IQcStaticTableService;
import com.op.system.api.domain.SysUser;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -18,8 +19,11 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* Service
@ -206,6 +210,14 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
@DS("#header.poolName")
public QcCheckTaskProduce getProduceReportXJ(QcCheckTaskProduce qcCheckTaskProduce) {
QcCheckTaskProduce produce = qcCheckReportIncomeMapper.getTopInfo(qcCheckTaskProduce);
//批次号去重
if(StringUtils.isNotBlank(produce.getIncomeBatchNo())){
List<String> batchNos = Arrays.asList(produce.getIncomeBatchNo().split(";"));
List<String> disBatchNos = batchNos.stream().distinct().collect(Collectors.toList());
produce.setIncomeBatchNo(StringUtils.join(disBatchNos, ";"));
}
QcStaticTable qcStaticTable = new QcStaticTable();
qcStaticTable.setOrderNo(qcCheckTaskProduce.getOrderNo());
List<QcStaticTable> checkInfos = qcStaticTableService.getXJCheckTableDetail(qcStaticTable);

@ -56,6 +56,9 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
@Autowired
private IQcCheckTaskDefectService qcCheckTaskDefectService;
@Autowired
private QcSampleRuleMapper qcSampleRuleMapper;
/**
*
*
@ -203,6 +206,16 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
}
qcCheckTaskInventory.setNoOkQuality(noOkQuality);
/**qc_sample_rule**/
if(qcCheckTaskInventory.getNoOkQuality()==null) {
QcCheckTaskIncome sampQua = new QcCheckTaskIncome();
sampQua.setCheckType(qcCheckTaskInventory.getCheckType());
sampQua.setQuality(qcCheckTaskInventory.getQuality());
String sampNum = qcSampleRuleMapper.getSampNum(sampQua);
if (StringUtils.isNotBlank(sampNum)) {
qcCheckTaskInventory.setSampleQuality(new BigDecimal(sampNum));
}
}
/**qc_check_task**/
qcCheckTaskInventoryMapper.insertQcCheckTaskInventory(qcCheckTaskInventory);

@ -0,0 +1,300 @@
package com.op.quality.service.impl;
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.IQcCheckTaskMarketService;
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 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.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Service
*
* @author Open Platform
* @date 2024-01-12
*/
@Service
public class QcCheckTaskMarketServiceImpl implements IQcCheckTaskMarketService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private QcCheckTaskMarketMapper qcCheckTaskMarketMapper;
@Autowired
private QcCheckTaskDetailMapper qcCheckTaskDetailMapper;
@Autowired
private QcCheckTypeProjectMapper qcCheckTypeProjectMapper;
@Autowired
private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper;
@Autowired
private IQcCheckTaskUserService qcCheckTaskUserService;
@Autowired
private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
@Autowired
private IQcCheckTaskDefectService qcCheckTaskDefectService;
@Autowired
private QcSampleRuleMapper qcSampleRuleMapper;
/**
*
*
* @param recordId
* @return
*/
@Override
@DS("#header.poolName")
public QcCheckTaskMarket selectQcCheckTaskMarketByRecordId(String recordId) {
QcCheckTaskMarket qcCheckTaskMarket = qcCheckTaskMarketMapper.selectQcCheckTaskMarketByRecordId(recordId);
//获取拼接好的检验人员信息
QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId);
if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) {
qcCheckTaskMarket.setCheckManName(qcCheckTaskUser.getManNames());
}
if (qcCheckTaskUser != null && StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) {
qcCheckTaskMarket.setCheckManCode(qcCheckTaskUser.getManCodes());
}
//获取不良品检验信息
List<QcCheckTaskDefect> qcCheckTaskDefectList = qcCheckTaskDefectService.selectDefectByBelongTo(recordId);
if (!CollectionUtils.isEmpty(qcCheckTaskDefectList)) {
qcCheckTaskMarket.setDefects(qcCheckTaskDefectList);
}
return qcCheckTaskMarket;
}
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public List<QcCheckTaskMarket> selectQcCheckTaskMarketList(QcCheckTaskMarket qcCheckTaskMarket) {
qcCheckTaskMarket.setDelFlag("0");
qcCheckTaskMarket.setTypeCode("market");
return qcCheckTaskMarketMapper.selectQcCheckTaskMarketList(qcCheckTaskMarket);
}
/**
*
*
* @param qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public int insertQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket) {
String factoryCode = "";
if (StringUtils.isNotBlank(qcCheckTaskMarket.getFactoryCode())) {
DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskMarket.getFactoryCode());
factoryCode = qcCheckTaskMarket.getFactoryCode();
} else {
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
}
qcCheckTaskMarket.setCreateTime(DateUtils.getNowDate());
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int liushuiNum = qcCheckTaskMarketMapper.getTodayMaxNum(qcCheckTaskMarket);
String liushuiStr = String.format("%04d", liushuiNum);
String createBy = SecurityUtils.getUsername();
Date nowDate = DateUtils.getNowDate();
qcCheckTaskMarket.setCheckNo(bpDD + liushuiStr);
/**取检测项**/
QcCheckTypeProject qctp = new QcCheckTypeProject();
qctp.setTypeId(qcCheckTaskMarket.getCheckType());//生产过程检验
qctp.setMaterialCode(qcCheckTaskMarket.getMaterialCode());//特性
/**qc_check_type_project**/
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
if (CollectionUtils.isEmpty(items)) {
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckTaskMarket.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();
qcCheckTaskMarket.setRecordId(beLongId);
qcCheckTaskMarket.setFactoryCode(factoryCode);
qcCheckTaskMarket.setCreateTime(nowDate);
qcCheckTaskMarket.setTypeCode("market");//大检验节点
/**qc_task_user start**/
if (StringUtils.isNotBlank(qcCheckTaskMarket.getCheckManName())) {
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> 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(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(beLongId);
qcCheckTaskUserList.add(qcCheckTaskUser);
}
//检验人插入
qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList);
} else {//上位机
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskMarket.getMaterialCode());
if (!CollectionUtils.isEmpty(users)) {
for (QcUserMaterialDTO user : users) {
user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId);
user.setCheckNo(qcCheckTaskMarket.getCheckNo());
user.setCreateBy(createBy);
user.setFactoryCode(factoryCode);
user.setCreateTime(nowDate);
}
int m = qcCheckTaskIncomeMapper.addCheckUsers(users);
logger.info("检查人新增" + m + "成功");
}
}
/** 不良品数据插入 */
if(qcCheckTaskMarket.getNoOkQuality()==null){
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.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());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
}
/**qc_sample_rule**/
QcCheckTaskIncome sampQua = new QcCheckTaskIncome();
sampQua.setCheckType(qcCheckTaskMarket.getCheckType());
sampQua.setQuality(qcCheckTaskMarket.getQuality());
String sampNum = qcSampleRuleMapper.getSampNum(sampQua);
if(StringUtils.isNotBlank(sampNum)){
qcCheckTaskMarket.setSampleQuality(new BigDecimal(sampNum));
}
/**qc_check_task**/
qcCheckTaskMarketMapper.insertQcCheckTaskMarket(qcCheckTaskMarket);
/**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 qcCheckTaskMarket
* @return
*/
@Override
@DS("#header.poolName")
public int updateQcCheckTaskMarket(QcCheckTaskMarket qcCheckTaskMarket) {
qcCheckTaskMarket.setUpdateTime(DateUtils.getNowDate());
/** qc_task_user**/
String checkManName = qcCheckTaskMarket.getCheckManName();
String checkManCode = qcCheckTaskMarket.getCheckManCode();
qcCheckTaskMarket.setCheckManName("");
qcCheckTaskMarket.setCheckManCode("");
String[] splitNames = checkManName.split(",");
String[] splitCodes = checkManCode.split(",");
List<QcCheckTaskUser> 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(qcCheckTaskMarket.getCheckNo());
qcCheckTaskUser.setBelongTo(qcCheckTaskMarket.getRecordId());
qcCheckTaskUserList.add(qcCheckTaskUser);
}
qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList);
/** 不良品数据修改 **/
BigDecimal noOkQuality = new BigDecimal(0);
List<QcCheckTaskDefect> defectList = qcCheckTaskMarket.getDefects();
String belongTo = qcCheckTaskMarket.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());
}
}
qcCheckTaskMarket.setNoOkQuality(noOkQuality);
return qcCheckTaskMarketMapper.updateQcCheckTaskMarket(qcCheckTaskMarket);
}
/**
*
*
* @param recordIds
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcCheckTaskMarketByRecordIds(String[] recordIds) {
return qcCheckTaskMarketMapper.deleteQcCheckTaskMarketByRecordIds(recordIds);
}
/**
*
*
* @param recordId
* @return
*/
@Override
@DS("#header.poolName")
public int deleteQcCheckTaskMarketByRecordId(String recordId) {
return qcCheckTaskMarketMapper.deleteQcCheckTaskMarketByRecordId(recordId);
}
}

@ -42,21 +42,37 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
if (!CollectionUtils.isEmpty(dtos) && dtos.size() == 2) {
QcInterface qif = new QcInterface();
qif.setYmdTypeName("okRate");
if (dtos.get(1).getQuality().equals("0")) {
qif.setQuality("100%");
} else {
BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
.subtract(new BigDecimal(dtos.get(1).getQuality())))
.multiply(new BigDecimal("100"))
.divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
qif.setQuality(okRate.toString() + "%");
}
dtos.add(qif);
}
//发布会
// List<QcInterface> dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
// if (!CollectionUtils.isEmpty(dtos) && dtos.size() == 2) {
// QcInterface qif = new QcInterface();
// qif.setYmdTypeName("okRate");
// if (dtos.get(1).getQuality().equals("0")) {
// qif.setQuality("100%");
// } else {
// BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
// .subtract(new BigDecimal(dtos.get(1).getQuality())))
// .multiply(new BigDecimal("100"))
// .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
// qif.setQuality(okRate.toString() + "%");
// }
// dtos.add(qif);
// }
/**质量看板测试开始**/
List<QcInterface> dtos = new ArrayList<>();
QcInterface qi0 = new QcInterface();
qi0.setYmdTypeName("all");
qi0.setQuality("33");
dtos.add(qi0);
QcInterface qi1 = new QcInterface();
qi1.setYmdTypeName("unOk");
qi1.setQuality("0");
dtos.add(qi1);
QcInterface qi2 = new QcInterface();
qi2.setYmdTypeName("okRate");
qi2.setQuality("100%");
dtos.add(qi2);
/**质量看板测试结束**/
return dtos;
}
@ -66,7 +82,32 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
//生产打开List<QcInterface> dtos = qcInterfaceMapper.getCheckProjectsPie(qcInterface);
/**质量看板测试开始**/
List<QcInterface> dtos = new ArrayList<>();
QcInterface q0 = new QcInterface();
q0.setProjectName("热贮稳定性");
q0.setQuality("1");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setProjectName("[香坯包膜]15mm爆口直径");
q1.setQuality("2");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setProjectName("其它不良现象");
q2.setQuality("5");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setProjectName("眼头插孔");
q3.setQuality("1");
dtos.add(q3);
QcInterface q4 = new QcInterface();
q4.setProjectName("厚度(一盘)");
q4.setQuality("2");
dtos.add(q4);
/**质量看板测试结束**/
return dtos;
}
@ -122,6 +163,68 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成");
dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格");
}
/**质量看板测试开始**/
QcInterface q0 = new QcInterface();
q0.setCheckNo("20240305001");
q0.setIncomeBatchNo("20270122LJ20240123BBBA0G");
q0.setOrderNo("000800000083-1");
q0.setMaterialName("10小时无烟型黑蚊香(繁体)纸盒");
q0.setQuality("19000");
q0.setUnit("个");
q0.setSupplierName("中山市粤华包装有限公司");
q0.setIncomeTime("2024-03-05 00:00:00");
q0.setCheckTime("2024-03-05 11:32:00");
q0.setCheckResult("合格");
q0.setCheckManName("马娥章");
q0.setCheckName("来料检验");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setCheckNo("20240306002");
q1.setIncomeBatchNo("20270122LJ20240123BCCA0F");
q1.setOrderNo("0008000001093-1");
q1.setMaterialName("依素猫狗(黄色)气雾盖");
q1.setQuality("5000");
q1.setUnit("个");
q1.setSupplierName("广州盛盈环保科技有限公司");
q1.setIncomeTime("2024-03-05 00:00:00");
q1.setCheckTime("2024-03-05 13:32:00");
q1.setCheckResult("合格");
q1.setCheckManName("马娥章");
q1.setCheckName("来料检验");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setCheckNo("20240307002");
q2.setIncomeBatchNo("20270122LJ20240456BCCA0D");
q2.setOrderNo("0008000001193-1");
q2.setMaterialName("King Brand蚊片(450装)纸箱");
q2.setQuality("5800");
q2.setUnit("个");
q2.setSupplierName("广州市网能产品设计有限公司");
q2.setIncomeTime("2024-03-07 00:00:00");
q2.setCheckTime("2024-03-07 13:42:00");
q2.setCheckResult("合格");
q2.setCheckManName("马娥章");
q2.setCheckName("来料检验");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setCheckNo("20240308001");
q3.setIncomeBatchNo("20270122LJ20240456BCBB0D");
q3.setOrderNo("0008000001203-1");
q3.setMaterialName("榄菊牌清香型蚊液(空白)纸箱");
q3.setQuality("7800");
q3.setUnit("个");
q3.setSupplierName("广州市网能产品设计有限公司");
q3.setCheckTime("2024-03-05 13:50:00");
q3.setIncomeTime("2024-03-07 00:00:00");
q3.setCheckResult("合格");
q3.setCheckManName("马娥章");
q3.setCheckName("来料检验");
dtos.add(q3);
/**质量看板测试结束**/
return dtos;
}
@ -158,6 +261,15 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
.divide(new BigDecimal(hz2.getQuality()), 2, RoundingMode.HALF_UP);
dtoMap.put("monthOkRate", tOkRate2 + "%");
}
/**质量看板测试开始**/
dtoMap.put("todayPro", "3800");
dtoMap.put("todaySample", "50");
dtoMap.put("todayNoOk", "2");
dtoMap.put("todayOkRate", "96.00%");
dtoMap.put("monthPro", "83600");
dtoMap.put("monthNoOk", "30");
dtoMap.put("monthOkRate", "99.96%");
/**质量看板测试结束**/
return dtoMap;
}
@ -167,6 +279,38 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
List<QcInterface> dtos = qcInterfaceMapper.getProduceNoOkList(qcInterface);
/**质量看板测试开始**/
QcInterface q0 = new QcInterface();
q0.setProjectName("产品外观");
q0.setCheckManName("马娥章");
q0.setCheckTime("2024-03-08 16:30:00");
dtos.add(q0);
QcInterface q1 = new QcInterface();
q1.setProjectName("厚度(一盘)");
q1.setCheckManName("马娥章");
q1.setCheckTime("2024-03-08 15:35:00");
dtos.add(q1);
QcInterface q2 = new QcInterface();
q2.setProjectName("其它不良现象");
q2.setCheckManName("马娥章");
q2.setCheckTime("2024-03-08 15:05:00");
dtos.add(q2);
QcInterface q3 = new QcInterface();
q3.setProjectName("灌装量/净含量/喷药量");
q3.setCheckManName("马娥章");
q3.setCheckTime("2024-03-07 16:00:00");
dtos.add(q3);
QcInterface q4 = new QcInterface();
q4.setProjectName("是否符合签样及材料清单要求,堆板日期朝外");
q4.setCheckManName("马娥章");
q4.setCheckTime("2024-03-05 11:00:00");
dtos.add(q4);
QcInterface q5 = new QcInterface();
q5.setProjectName("其它不良现象");
q5.setCheckManName("马娥章");
q5.setCheckTime("2024-03-05 16:00:00");
dtos.add(q5);
/**质量看板测试结束**/
return dtos;
}
@ -188,7 +332,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
for (int mh = 1; mh <= nowMonth; mh++) {
String yyyymm = nowYMDs[1] + "-" + String.format("%02d", mh);
monthNames.add(yyyymm);
if (!CollectionUtils.isEmpty(noOkHzs)) {
if (!CollectionUtils.isEmpty(noOkHzs)&&noOkHzs.get(yyyymm)!=null) {
monthData.add(noOkHzs.get(yyyymm).getNoOkQuality());
} else {
monthData.add("0");
@ -197,7 +341,18 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dtoMap.put("month", monthNames);
dtoMap.put("monthData", monthData);
/**质量看板测试开始**/
List<String> monthNames0 = new ArrayList<>();
monthNames0.add("2024-01");monthNames0.add("2024-02");monthNames0.add("2024-03");monthNames0.add("2024-04");
monthNames0.add("2024-05");monthNames0.add("2024-06");monthNames0.add("2024-07");monthNames0.add("2024-08");
monthNames0.add("2024-09");monthNames0.add("2024-10");monthNames0.add("2024-11");monthNames0.add("2024-12");
List<String> monthData0 = new ArrayList<>();
monthData0.add("5");monthData0.add("4");monthData0.add("7");monthData0.add("10");monthData0.add("5");
monthData0.add("4");monthData0.add("9");monthData0.add("12");monthData0.add("3");monthData0.add("7");
monthData0.add("5");monthData0.add("2");
dtoMap.put("month", monthNames0);
dtoMap.put("monthData", monthData0);
/**质量看板测试结束**/
return dtoMap;
}
@ -218,7 +373,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
List<String> xAxisDatas = getDays(startTime, endTime);
dto.setDayStr(xAxisDatas);//
//通过报工获取到真实参与生产的线体
List<QcProCheck> lines = qcInterfaceMapper.getLineNames();
List<QcProCheck> lines = qcInterfaceMapper.getLineNames(startTime.substring(0,7));
if (CollectionUtils.isEmpty(lines)) {
return null;
}
@ -269,49 +424,64 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
}
lastYM.setDayStr(daystr0);
nowYM.setDayStr(daystr1);
//生产打开
// qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
//
// Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
// if (noOkNum == null) {
// return null;
// }
//
// List<String> dataBar0 = new ArrayList<>();//不合规数量
// List<String> dataLine0 = new ArrayList<>();//不合格率
// for (String day0 : daystr0) {
// QcInterface last = noOkNum.get(day0);
// if (last != null) {
// dataBar0.add(last.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine0.add(norate0.toString());
// } else {
// dataBar0.add("0");
// dataLine0.add("0.00");
// }
// }
//
// List<String> dataBar1 = new ArrayList<>();//不合规数量
// List<String> dataLine1 = new ArrayList<>();//不合格率
// for (String day1 : daystr1) {
// QcInterface now = noOkNum.get(day1);
// if (now != null) {
// dataBar1.add(now.getNoOkQuality());
// BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
// .divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
// dataLine1.add(norate0.toString());
// } else {
// dataBar1.add("0");
// dataLine1.add("0.00");
// }
// }
/**质量看板测试开始**/
List<String> dataBar0 = new ArrayList<>();//不合规数量
List<String> dataLine0 = new ArrayList<>();//不合格率
List<String> dataBar1 = new ArrayList<>();//不合规数量
List<String> dataLine1 = new ArrayList<>();//不合格率
dataBar0.add("4");dataBar0.add("9");dataBar0.add("7");dataBar0.add("13");dataBar0.add("11");dataBar0.add("7");
dataBar0.add("8");dataBar0.add("4");dataBar0.add("5");dataBar0.add("2");dataBar0.add("10");dataBar0.add("6");
dataBar1.add("3");dataBar1.add("14");dataBar1.add("17");dataBar1.add("3");dataBar1.add("9");dataBar1.add("3");
dataBar1.add("8");dataBar1.add("5");dataBar1.add("4");dataBar1.add("2");dataBar1.add("9");dataBar1.add("5");
qcInterface.setYmd("'" + nowYear + "','" + lastYear + "'");
dataLine0.add("1");dataLine0.add("2");dataLine0.add("0.5");dataLine0.add("0.9");dataLine0.add("1");dataLine0.add("1.9");
dataLine0.add("1.1");dataLine0.add("1");dataLine0.add("0.7");dataLine0.add("0.9");dataLine0.add("1.5");dataLine0.add("1.3");
dataLine1.add("0.5");dataLine1.add("1.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("0.7");dataLine1.add("1.9");
dataLine1.add("1.4");dataLine1.add("0.5");dataLine1.add("0.9");dataLine1.add("1");dataLine1.add("1.3");dataLine1.add("1.2");
/**质量看板测试结束**/
Map<String, QcInterface> noOkNum = qcInterfaceMapper.getMothNoOkNum(qcInterface);
if (noOkNum == null) {
return null;
}
lastYM.setDataBarArrays(dataBar0);
lastYM.setDataLineArrays(dataLine0);
List<String> data0 = new ArrayList<>();//不合规数量
List<String> dataStr0 = new ArrayList<>();//不合格率
for (String day0 : daystr0) {
QcInterface last = noOkNum.get(day0);
if (last != null) {
data0.add(last.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
dataStr0.add(norate0.toString());
} else {
data0.add("0");
dataStr0.add("0.00");
}
}
List<String> data1 = new ArrayList<>();//不合规数量
List<String> dataStr1 = new ArrayList<>();//不合格率
for (String day1 : daystr1) {
QcInterface now = noOkNum.get(day1);
if (now != null) {
data1.add(now.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
dataStr1.add(norate0.toString());
} else {
data1.add("0");
dataStr1.add("0.00");
}
}
lastYM.setData(data0);
lastYM.setDayStr(dataStr0);
nowYM.setData(data1);
nowYM.setDayStr(dataStr1);
nowYM.setDataBarArrays(dataBar1);
nowYM.setDataLineArrays(dataLine1);
dtos.add(lastYM);
dtos.add(nowYM);

@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.quality.mapper.QcCheckTaskMarketMapper">
<resultMap type="QcCheckTaskMarket" id="QcCheckTaskMarketResult">
<result property="recordId" column="record_id"/>
<result property="checkNo" column="check_no"/>
<result property="incomeBatchNo" column="income_batch_no"/>
<result property="orderNo" column="order_no"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="quality" column="quality"/>
<result property="unit" column="unit"/>
<result property="supplierCode" column="supplier_code"/>
<result property="supplierName" column="supplier_name"/>
<result property="incomeTime" column="income_time"/>
<result property="checkLoc" column="check_loc"/>
<result property="checkStatus" column="check_status"/>
<result property="checkManCode" column="check_man_code"/>
<result property="checkManName" column="check_man_name"/>
<result property="checkTime" column="check_time"/>
<result property="checkResult" column="check_result"/>
<result property="status" column="status"/>
<result property="attr1" column="attr1"/>
<result property="attr2" column="attr2"/>
<result property="attr3" column="attr3"/>
<result property="attr4" column="attr4"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="factoryCode" column="factory_code"/>
<result property="delFlag" column="del_flag"/>
<result property="checkType" column="check_type"/>
<result property="noOkQuality" column="noOk_quality"/>
<result property="sampleQuality" column="sample_quality"/>
<result property="aNoOkquality" column="aNoOkquality"/>
<result property="bNoOkquality" column="bNoOkquality"/>
<result property="cNoOkquality" column="cNoOkquality"/>
<result property="typeCode" column="type_code"/>
<result property="orderType" column="order_type"/>
</resultMap>
<sql id="selectQcCheckTaskMarketVo">
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
</sql>
<select id="selectQcCheckTaskMarketList" parameterType="QcCheckTaskMarket"
resultMap="QcCheckTaskMarketResult">
select qct.record_id, qct.check_no, qct.income_batch_no,
qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit,
qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status,
qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status,
qct.create_by,qct.create_time, qct.update_by, qct.update_time,
qct.check_type,qct.sample_quality,qct.noOk_quality,
q.type_code
from qc_check_task qct
left join qc_check_type q on q.id = qct.check_type
<where>
<if test="checkNo != null and checkNo != ''">and qct.check_no = #{checkNo}</if>
<if test="incomeBatchNo != null and incomeBatchNo != ''">and qct.income_batch_no = #{incomeBatchNo}</if>
<if test="orderNo != null and orderNo != ''">and qct.order_no = #{orderNo}</if>
<if test="materialCode != null and materialCode != ''">and qct.material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''">and qct.material_name like concat('%',
#{materialName}, '%')
</if>
<if test="supplierCode != null and supplierCode != ''">and qct.supplier_code = #{supplierCode}</if>
<if test="supplierName != null and supplierName != ''">and qct.supplier_name like concat('%',
#{supplierName}, '%')
</if>
<if test="incomeTime != null ">and qct.income_time = #{incomeTime}</if>
<if test="checkLoc != null and checkLoc != ''">and qct.check_loc = #{checkLoc}</if>
<if test="checkStatus != null and checkStatus != ''">and qct.check_status = #{checkStatus}</if>
<if test="checkManCode != null and checkManCode != ''">and qct.check_man_code = #{checkManCode}</if>
<if test="checkManName != null and checkManName != ''">and qct.check_man_name like concat('%',
#{checkManName}, '%')
</if>
<if test="checkResult != null and checkResult != ''">and qct.check_result = #{checkResult}</if>
<if test="status != null and status != ''">and qct.status = #{status}</if>
<if test="delFlag != null and delFlag != ''">and qct.del_flag = #{delFlag}</if>
<if test="factoryCode != null and factoryCode != ''">and qct.factory_code = #{factoryCode}</if>
<if test="incomeTimeStart != null ">and CONVERT(varchar(30),qct.income_time, 120) >= #{incomeTimeStart}</if>
<if test="incomeTimeEnd != null ">and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120)</if>
<if test="checkTimeStart != null ">and CONVERT(varchar(30),qct.check_time, 120) >= #{checkTimeStart}</if>
<if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.check_time, 120)</if>
<if test="checkType != null ">and qct.check_type = #{checkType}</if>
<if test="typeCode != null ">and q.type_code = #{typeCode}</if>
</where>
</select>
<select id="selectQcCheckTaskMarketByRecordId" parameterType="String" resultMap="QcCheckTaskMarketResult">
<include refid="selectQcCheckTaskMarketVo"/>
where record_id = #{recordId}
</select>
<insert id="insertQcCheckTaskMarket" parameterType="QcCheckTaskMarket">
insert into qc_check_task
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recordId != null">record_id,</if>
<if test="checkNo != null">check_no,</if>
<if test="incomeBatchNo != null">income_batch_no,</if>
<if test="orderNo != null">order_no,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="quality != null">quality,</if>
<if test="unit != null">unit,</if>
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="incomeTime != null">income_time,</if>
<if test="checkLoc != null">check_loc,</if>
<if test="checkStatus != null">check_status,</if>
<if test="checkManCode != null">check_man_code,</if>
<if test="checkManName != null">check_man_name,</if>
<if test="checkTime != null">check_time,</if>
<if test="checkResult != null">check_result,</if>
<if test="status != null">status,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="factoryCode != null and factoryCode != ''">factory_code,</if>
<if test="delFlag != null">del_flag,</if>
<if test="checkType != null">check_type,</if>
<if test="noOkQuality != null">noOk_quality,</if>
<if test="sampleQuality != null">sample_quality,</if>
<if test="aNoOkquality != null">aNoOkquality,</if>
<if test="bNoOkquality != null">bNoOkquality,</if>
<if test="cNoOkquality != null">cNoOkquality,</if>
<if test="typeCode != null">type_code,</if>
<if test="orderType != null">order_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recordId != null">#{recordId},</if>
<if test="checkNo != null">#{checkNo},</if>
<if test="incomeBatchNo != null">#{incomeBatchNo},</if>
<if test="orderNo != null">#{orderNo},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="quality != null">#{quality},</if>
<if test="unit != null">#{unit},</if>
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="incomeTime != null">#{incomeTime},</if>
<if test="checkLoc != null">#{checkLoc},</if>
<if test="checkStatus != null">#{checkStatus},</if>
<if test="checkManCode != null">#{checkManCode},</if>
<if test="checkManName != null">#{checkManName},</if>
<if test="checkTime != null">#{checkTime},</if>
<if test="checkResult != null">#{checkResult},</if>
<if test="status != null">#{status},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="checkType != null">#{checkType},</if>
<if test="noOkQuality != null">#{noOkQuality},</if>
<if test="sampleQuality != null">#{sampleQuality},</if>
<if test="aNoOkquality != null">#{aNoOkquality},</if>
<if test="bNoOkquality != null">#{bNoOkquality},</if>
<if test="cNoOkquality != null">#{cNoOkquality},</if>
<if test="typeCode != null">#{typeCode},</if>
<if test="orderType != null">#{orderType},</if>
</trim>
</insert>
<update id="updateQcCheckTaskMarket" parameterType="QcCheckTaskMarket">
update qc_check_task
<trim prefix="SET" suffixOverrides=",">
<if test="checkNo != null">check_no = #{checkNo},</if>
<if test="incomeBatchNo != null">income_batch_no = #{incomeBatchNo},</if>
<if test="orderNo != null">order_no = #{orderNo},</if>
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="quality != null">quality = #{quality},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="supplierCode != null">supplier_code = #{supplierCode},</if>
<if test="supplierName != null">supplier_name = #{supplierName},</if>
<if test="incomeTime != null">income_time = #{incomeTime},</if>
<if test="checkLoc != null">check_loc = #{checkLoc},</if>
<if test="checkStatus != null">check_status = #{checkStatus},</if>
<if test="checkManCode != null">check_man_code = #{checkManCode},</if>
<if test="checkManName != null">check_man_name = #{checkManName},</if>
<if test="checkTime != null">check_time = #{checkTime},</if>
<if test="checkResult != null">check_result = #{checkResult},</if>
<if test="status != null">status = #{status},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="factoryCode != null and factoryCode != ''">factory_code = #{factoryCode},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="checkType != null">check_type = #{checkType},</if>
<if test="noOkQuality != null">noOk_quality = #{noOkQuality},</if>
<if test="sampleQuality != null">sample_quality = #{sampleQuality},</if>
<if test="aNoOkquality != null">aNoOkquality = #{aNoOkquality},</if>
<if test="bNoOkquality != null">bNoOkquality = #{bNoOkquality},</if>
<if test="cNoOkquality != null">cNoOkquality = #{cNoOkquality},</if>
<if test="typeCode != null">type_code = #{typeCode},</if>
<if test="orderType != null">order_type = #{orderType},</if>
</trim>
where record_id = #{recordId}
</update>
<delete id="deleteQcCheckTaskMarketByRecordId" parameterType="String">
delete from qc_check_task where record_id = #{recordId}
</delete>
<delete id="deleteQcCheckTaskMarketByRecordIds" parameterType="String">
delete from qc_check_task where record_id in
<foreach item="recordId" collection="array" open="(" separator="," close=")">
#{recordId}
</foreach>
</delete>
<select id="getTodayMaxNum" resultType="java.lang.Integer">
select count(0)+1
from qc_check_task
where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
</select>
</mapper>

@ -34,7 +34,7 @@
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
and del_flag = '0'
</where>
order by create_time
order by type_code
</select>
<select id="selectQcCheckTypeById" parameterType="String" resultMap="QcCheckTypeResult">

@ -138,6 +138,7 @@
qct.unit,
qct.supplier_name supplierName,
qct.income_time incomeTime,
qct.check_time checkTime,
qct.check_result checkResult,
qct.check_man_name checkManName,
qc.check_name checkName

Loading…
Cancel
Save