成品抽检接口

master
zhaoxiaolin 3 months ago
parent e255a30661
commit b8a43de01a

@ -135,14 +135,19 @@ public class MesLineAssistantQtyServiceImpl implements IMesLineAssistantQtyServi
// (-中午休息1.5h) // (-中午休息1.5h)
mesLineAssistant.setPostId("10000150"); mesLineAssistant.setPostId("10000150");
BigDecimal monitorHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); BigDecimal monitorHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant);
monitorHour = monitorHour.subtract(new BigDecimal("1.5"));
mesLineAssistant.setPostId("10000168"); mesLineAssistant.setPostId("10000168");
BigDecimal groupleadeHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); BigDecimal groupleadeHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant);
groupleadeHour = groupleadeHour.subtract(new BigDecimal("1.5"));
mesLineAssistant.setPostId("10000478"); mesLineAssistant.setPostId("10000478");
BigDecimal materialHour= mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); BigDecimal materialHour= mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant);
materialHour = materialHour.subtract(new BigDecimal("1.5"));
mesLineAssistant.setPostId("10000271"); mesLineAssistant.setPostId("10000271");
BigDecimal pillMgrHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); BigDecimal pillMgrHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant);
pillMgrHour = pillMgrHour.subtract(new BigDecimal("1.5"));
mesLineAssistant.setPostId("10000155"); mesLineAssistant.setPostId("10000155");
BigDecimal pillDisHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant); BigDecimal pillDisHour = mesLineAssistantQtyMapper.getKqHourMaps(mesLineAssistant);
pillDisHour = pillDisHour.subtract(new BigDecimal("1.5"));
BigDecimal allProHours = BigDecimal.ZERO; BigDecimal allProHours = BigDecimal.ZERO;
for(MesLineAssistantQtyVo assistdto:dtos){ for(MesLineAssistantQtyVo assistdto:dtos){
//产品工时(用母单的) //产品工时(用母单的)

@ -1087,4 +1087,10 @@ public class QcStaticTableController extends BaseController {
} }
} }
} }
@Log(title = "黑蚊香成品分类汇总--表头", businessType = BusinessType.QUERY)
@GetMapping("/getCpDateTitle")
public List<String> getCpDateTitle(QcStaticTable qcStaticTable) {
return qcStaticTableService.getCpDateTitle(qcStaticTable);
}
} }

@ -346,4 +346,17 @@ public class QuaController extends BaseController {
DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode()); DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode());
return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome); return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome);
} }
/**当前正在生产的线体,正在运行的订单**/
@PostMapping("/getLineProOrder")
public List<QcCheckTaskIncome> getLineProOrder(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) {
DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode());
return qcCheckTaskIncomeService.getLineProOrder(qcCheckTaskIncome);
}
/**成品抽检提交**/
@PostMapping(value = "/commitCPCJCheck")
public AjaxResult commitCPCJCheck(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) {
DynamicDataSourceContextHolder.push(qcCheckTaskIncome.getFactoryCode());
return toAjax(qcCheckTaskIncomeService.commitCPCJCheck(qcCheckTaskIncome));
}
} }

@ -169,4 +169,8 @@ public interface QcCheckTaskIncomeMapper {
int insertBaseFileBatch(@Param("baseFiles")List<BaseFileData> files); int insertBaseFileBatch(@Param("baseFiles")List<BaseFileData> files);
void deleteBaseFileBySourceId(@Param("sourceId") String sourceId); void deleteBaseFileBySourceId(@Param("sourceId") String sourceId);
List<QcCheckTaskIncome> getLineProOrder(QcCheckTaskIncome getLineProOrder);
List<QcCheckTaskDefect> getOrderBatch(String recordId);
} }

@ -124,4 +124,7 @@ public interface IQcCheckTaskIncomeService {
List<Map> getCkeckProjectMapList(QcCheckTaskIncome qcCheckTaskIncome); List<Map> getCkeckProjectMapList(QcCheckTaskIncome qcCheckTaskIncome);
int submitCheckPics(QcCheckTaskIncome qcCheckTaskIncome); int submitCheckPics(QcCheckTaskIncome qcCheckTaskIncome);
List<QcCheckTaskIncome> getLineProOrder(QcCheckTaskIncome qcCheckTaskIncome);
int commitCPCJCheck(QcCheckTaskIncome qcCheckTaskIncome);
} }

@ -93,4 +93,6 @@ public interface IQcStaticTableService {
List<Map<String, String>> getDefectItemDataPC(QcStaticTable qcStaticTable); List<Map<String, String>> getDefectItemDataPC(QcStaticTable qcStaticTable);
QcStaticTable getDefectItemLinePC(QcStaticTable qcStaticTable); QcStaticTable getDefectItemLinePC(QcStaticTable qcStaticTable);
List<String> getCpDateTitle(QcStaticTable qcStaticTable);
} }

@ -1456,4 +1456,196 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
} }
return qcCheckTaskIncomeMapper.insertBaseFileBatch(files); return qcCheckTaskIncomeMapper.insertBaseFileBatch(files);
} }
@Override
@DS("#header.poolName")
public List<QcCheckTaskIncome> getLineProOrder(QcCheckTaskIncome getLineProOrder) {
List<QcCheckTaskIncome> dtos = qcCheckTaskIncomeMapper.getLineProOrder(getLineProOrder);
for(QcCheckTaskIncome dto:dtos){
List<QcCheckTaskDefect> defects = qcCheckTaskIncomeMapper.getOrderBatch(dto.getRecordId());
dto.setDefects(defects);
}
return dtos;
}
@Override
//@Transactional(rollbackFor = Exception.class)
public int commitCPCJCheck(QcCheckTaskIncome qcCheckTaskIncome) {
logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome));
List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
Date nowTime = DateUtils.getNowDate();
String factoryCode = qcCheckTaskIncome.getFactoryCode();
String updateBy = qcCheckTaskIncome.getUpdateBy();
String belongId = IdUtils.fastSimpleUUID();
String checkType = qcCheckTaskIncome.getCheckType();
qcCheckTaskIncome.setFactoryCode(qcCheckTaskIncome.getFactoryCode().replace("ds_",""));
//默认合格
String result=null;
if(StringUtils.isBlank(qcCheckTaskIncome.getCheckResult())){
result = "Y";
for(QcCheckTaskDetail detail:details){
if("N".equals(detail.getStatus())){
result = "N";//不合格
break;
}
}
}else{
//有最终判定的情况
result = qcCheckTaskIncome.getCheckResult();
}
int n = 0;
QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome();
qcCheckTask.setUpdateBy(updateBy);
qcCheckTask.setRecordId(belongId);
qcCheckTask.setCheckStatus("2");//检测状态0待检测1检测中2检测完成
qcCheckTask.setUpdateTime(nowTime);
qcCheckTask.setCheckTime(nowTime);
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
BigDecimal noOkQquality = new BigDecimal("0");
String[] defectQualitys0 = details.get(0).getDefectQualitys().split(",");;
for(int m=0;m<defectQualitys0.length;m++){
noOkQquality = noOkQquality.add(new BigDecimal(defectQualitys0[m]));
}
qcCheckTask.setNoOkQuality(noOkQquality);
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy());
qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName());
//BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
//sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality().equals("")?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
//qmsFileMapper.clearBaseFileBatch(detail.getRecordId());//清理
String[] ids = detail.getFileListStr().split(",");
List<BaseFileData> files = new ArrayList<>();
BaseFileData file = null;
for (String id : ids) {
file = new BaseFileData();
file.setFileId(IdUtils.fastSimpleUUID());
file.setFileName(id.split("&fileName=")[1]);
file.setFileAddress(id);
file.setSourceId(belongId);
file.setCreateBy(updateBy);
file.setCreateTime(nowTime);
files.add(file);
}
/**base_file**/
n = qmsFileMapper.insertBaseFileBatch(files);
System.out.println("base_file:"+n);
}
}
/**qc_check_task**/
String bpDD = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int liushuiNum = qcCheckTaskIncomeMapper.getTodayMaxNum(qcCheckTaskIncome);
String liushuiStr = String.format("%04d", liushuiNum);
qcCheckTask.setCheckNo(bpDD+liushuiStr);
n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTask);
logger.info("qc_check_task:"+n);
/**qc_check_task_defect**/
n=qcCheckTaskIncomeMapper.deleteQcCheckTaskDefects(belongId);
logger.info("清理qc_check_task_defect:"+n);
List<QcCheckTaskDefect> defects = new ArrayList<>();
QcCheckTaskDefect defect = null;
for(QcCheckTaskDetail detail:details){
if(StringUtils.isNotBlank(detail.getDefectCodes())){
String[] defectCodes = detail.getDefectCodes().split(",");
String[] defectNames = detail.getDefectNames().split(",");
String[] defectQualitys = detail.getDefectQualitys().split(",");
if(StringUtils.isBlank(detail.getClassTypeCodes())){
detail.setClassTypeCodes(",");//为了防止前端不选缺陷描述
}
String[] classIds = detail.getClassTypeCodes().split(",");
for(int d=0;d<defectCodes.length;d++){
defect = new QcCheckTaskDefect();
defect.setDefectCode(defectCodes[d]);
defect.setDefectSubclass(defectNames[d].split(":")[0]);
defect.setNoOkQuality(new BigDecimal(defectQualitys[d]));
if(d < classIds.length){
defect.setClassId(classIds[d]);
}else{
defect.setClassId("");
}
defect.setRecordId(IdUtils.fastSimpleUUID());
defect.setCreateTime(nowTime);
defect.setCreateBy(updateBy);
defect.setFactoryCode(factoryCode);
defect.setBelongTo(belongId);
defects.add(defect);
}
}
}
if(!CollectionUtils.isEmpty(defects)){
n= qcCheckTaskIncomeMapper.addQcCheckTaskDefects(defects);
logger.info("qc_check_task_defect:"+n);
}
// if("material".equals(qcCheckTaskIncome.getTypeCode())){
// qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2");
// qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome);
// }else if("produce".equals(qcCheckTaskIncome.getTypeCode())){
// if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())){
// /**pro_order_workorder_batch-->qc_status->2**/
// qcCheckTaskIncome.setStatus("2");
// qcCheckTaskIncome.setCheckResult(result);
// qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome);
// }
// if("checkTypeSC".equals(qcCheckTaskIncome.getCheckType())&&"N".equals(result)){
// QcCheckTaskIncome recheck = new QcCheckTaskIncome();
// recheck.setOldBelongTo(belongId);
//
// recheck.setCreateBy(updateBy);
// recheck.setCreateTime(nowTime);
// //首件不合格触发复检
// recheck.setRecordId(IdUtils.fastSimpleUUID());
// recheck.setBelongTo(recheck.getRecordId());
//
// n = qcCheckUnqualifiedMapper.repeatCheckTask(recheck);
// logger.info("复检表qc_check_task:" + n);
//
//// n = qcCheckUnqualifiedMapper.repeatCheckTaskDefect(recheck);
//// logger.info("复检表qc_check_task_defect:" + n);
//
// n = qcCheckUnqualifiedMapper.repeatCheckTaskDetail(recheck);
// logger.info("复检表qc_check_task_detail:" + n);
//
// n = qcCheckUnqualifiedMapper.repeatCheckTaskUser(recheck);
// logger.info("复检表qc_check_task_user:" + n);
//
// }
// }else if("product".equals(qcCheckTaskIncome.getTypeCode())){
// /**wms_product_put-->check_status->1**/
// qcCheckTaskIncome.setStatus("2");
// qcCheckUnqualifiedMapper.updatePutStatus(qcCheckTaskIncome);
// }
//
// //不合格处理
// if("N".equals(result)) {
// QcCheckUnqualified unqualified = new QcCheckUnqualified();
// unqualified.setId(IdUtils.fastSimpleUUID());
// unqualified.setTaskId(belongId);
// unqualified.setCreateTime(DateUtils.getNowDate());
// unqualified.setCreateBy(updateBy);
// unqualified.setFactoryCode(factoryCode);
// unqualified.setType(checkType);
// n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified);
// logger.info("qc_check_unqualified:" + n);
// if("1".equals(qcCheckTaskIncome.getStartOA())){
// this.setOaFunc(unqualified,qcCheckTaskIncome);
// }
// //发送企业微信
// this.sendWX(qcCheckTaskIncome);
// }
return 1 ;
}
} }

@ -215,13 +215,16 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
qcCheckTaskWarehousing.setCheckManName(""); qcCheckTaskWarehousing.setCheckManName("");
qcCheckTaskWarehousing.setCheckManCode(""); qcCheckTaskWarehousing.setCheckManCode("");
/**qc_user_material取默认检查人**/ /**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType());
QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome();
qcCheckTaskIncome.setCheckType(qcCheckTaskWarehousing.getCheckType());
qcCheckTaskIncome.setMaterialCode(qcCheckTaskWarehousing.getMaterialCode());
qcCheckTaskIncome.setCheckLoc(qcCheckTaskWarehousing.getCheckLoc());
List<QcUserMaterialDTO> users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome);
if(CollectionUtils.isEmpty(users)){ if(CollectionUtils.isEmpty(users)){
QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskWarehousing.getCheckType());
dto0.setUserCode("mobile"); }
dto0.setUserName("手持测试用户"); if(!CollectionUtils.isEmpty(users)){
users.add(dto0);
}else{
for(QcUserMaterialDTO user:users){ for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID()); user.setId(IdUtils.fastSimpleUUID());
user.setBelongTo(beLongId); user.setBelongTo(beLongId);
@ -231,6 +234,7 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin
user.setCreateTime(nowDate); user.setCreateTime(nowDate);
} }
} }
/**qc_check_task_user**/ /**qc_check_task_user**/
int m=qcCheckTaskIncomeMapper.addCheckUsers(users); int m=qcCheckTaskIncomeMapper.addCheckUsers(users);
logger.info("检查人新增"+m+"成功"); logger.info("检查人新增"+m+"成功");

@ -1988,6 +1988,23 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return dto; return dto;
} }
@Override
public List<String> getCpDateTitle(QcStaticTable qcStaticTable) {
//获取不良种类
List<String> titles = new ArrayList<>();//qcStaticTableMapper.getCpDefects(qcStaticTable);
titles.add("抽样总数");
titles.add("A类");
titles.add("B类");
titles.add("C类");
titles.add("不良总数");
titles.add("不良率");
titles.add("抽检批数");
titles.add("不合格批数");
titles.add("不合格批次率");
return titles;
}
protected Map<String,String> getHJRow(List<Map<String, String>> dtos,int days){ protected Map<String,String> getHJRow(List<Map<String, String>> dtos,int days){
Map<String,String> dto2 = new HashMap<>(); Map<String,String> dto2 = new HashMap<>();
dto2.put("dataType","合计"); dto2.put("dataType","合计");

@ -903,6 +903,26 @@
where qum.material_code = #{checkType} and qum.del_flag = '0' where qum.material_code = #{checkType} and qum.del_flag = '0'
and qum.attr2 like concat ('%',#{checkLoc},'%') and qum.attr2 like concat ('%',#{checkLoc},'%')
</select> </select>
<select id="getLineProOrder" resultType="com.op.quality.domain.QcCheckTaskIncome">
select pow.workorder_id recordId,
pow.workorder_name checkLoc,
pow.workorder_code orderNo,
be.equipment_name checkLocName,
pow.product_code materialCode,
pow.product_name materialName
from pro_order_workorder pow
left join base_equipment be on be.equipment_code = pow.workorder_name and be.equipment_type_code = 'equ_type_bzx'
where pow.status = 'w2'
and pow.product_date = CONVERT(varchar(10),GETDATE(), 120)
and pow.parent_order = '0'
and pow.del_flag = '0'
</select>
<select id="getOrderBatch" resultType="com.op.quality.domain.QcCheckTaskDefect">
select batch_code attr1
from pro_order_workorder_batch
where workorder_id = #{recordId}
and del_flag = '0'
</select>
<!--批量更新原始表--> <!--批量更新原始表-->
<update id="updateIncomeBatchList"> <update id="updateIncomeBatchList">

@ -457,6 +457,7 @@
select select
pow.factory_code factoryCode, pow.factory_code factoryCode,
pow.workorder_code workorderCode, pow.workorder_code workorderCode,
pow.workorder_name checkLoc,
pow.product_code materialCode, pow.product_code materialCode,
pow.product_name materialName, pow.product_name materialName,
pow.quantity_split quality, pow.quantity_split quality,

@ -166,7 +166,7 @@
STRING_AGG(check_man_name,',') AS 'manNames', STRING_AGG(check_man_name,',') AS 'manNames',
belong_to belong_to
from qc_check_task_user from qc_check_task_user
where belong_to = #{belongTo} where belong_to = #{belongTo} and del_flag = '0'
group by belong_to group by belong_to
</select> </select>

Loading…
Cancel
Save