检验分配逻辑变更

master
zhaoxiaolin 3 months ago
parent cc485c9365
commit a05dc41f21

@ -180,4 +180,10 @@ public class MesReportWorkConsumeController extends BaseController {
List<MesReportWorkConsume> rlist = mesReportWorkConsumeService.getBomList(mesReportWorkConsume);
return rlist;
}
@Log(title = "一键清除生产报工物料消耗", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteConsume/{workorderCode}")
public AjaxResult deleteConsume(@PathVariable String workorderCode) {
return toAjax(mesReportWorkConsumeService.deleteConsume(workorderCode));
}
}

@ -242,4 +242,8 @@ public interface MesReportWorkMapper {
List<ConsumptionDiff> getReportWorksList(ConsumptionDiff consumptionDiff);
String getLastCPPC(MesReportWork rwork);
int deleteConsume(@Param("list") List<MesReportWorkConsume> list);
List<MesReportWorkConsume> getClearConsum(String workorderCode);
}

@ -87,4 +87,6 @@ public interface IMesReportWorkConsumeService {
List<MesReportWorkConsume> getBomList(MesReportWorkConsume mesReportWorkConsume);
List<MesReportWorkConsumeTabs> getAllLevelConsumeList(MesReportWorkConsume mesReportWorkConsume);
int deleteConsume(String workorderCode);
}

@ -403,4 +403,14 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
return tabs;
}
@Override
@DS("#header.poolName")
public int deleteConsume(String workorderCode) {
List<MesReportWorkConsume> clearData = mesReportWorkMapper.getClearConsum(workorderCode);
if(CollectionUtils.isEmpty(clearData)){
return 1;
}
return mesReportWorkMapper.deleteConsume(clearData) ;
}
}

@ -1740,4 +1740,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<delete id="deleteReportConsume">
update mes_report_work_consume set del_flag = '1' where report_code = #{reportCode}
</delete>
<select id="getClearConsum" resultType="com.op.mes.domain.MesReportWorkConsume">
select * from(
select workorder_code workorderCode,
material_code materialCode,
count(0) attr1,
min(create_time) attr2
from mes_report_work_consume where parent_order =#{workorderCode}
GROUP BY workorder_code,material_code
) t where attr1>1
</select>
<delete id="deleteConsume">
<foreach collection="list" item="item" separator=";">
update mes_report_work_consume
set
del_flag = '1'
where
workorder_code = #{item.workorderCode} and
material_code = #{item.materialCode} and
create_time = #{item.attr2}
</foreach>
</delete>
</mapper>

@ -78,6 +78,7 @@ public interface OpenMapper {
public int addBatch(@Param("list") List<QcCheckTaskDetailDTO> items);
List<QcUserMaterialDTO> getCheckUsers(String checkType);
List<QcUserMaterialDTO> getCheckUserBelongLine(QcCheckTaskProduceDTO qcCheckTaskProduce);
public int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);

@ -428,18 +428,9 @@ public class OpenServiceImpl implements OpenService {
qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性
/**qc_user_material取默认检查人**/
List<QcUserMaterialDTO> users = openMapper.getCheckUsers(qcCheckTaskProduce.getCheckType());
List<QcUserMaterialDTO> users = openMapper.getCheckUserBelongLine(qcCheckTaskProduce);
if (CollectionUtils.isEmpty(users)) {
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setId(IdUtils.fastSimpleUUID());
dto0.setBelongTo(beLongId);
dto0.setCheckNo(qcCheckTaskProduce.getCheckNo());
dto0.setCreateBy(createBy);
dto0.setFactoryCode(factoryCode);
dto0.setCreateTime(nowDate);
dto0.setUserCode("mobile");
dto0.setUserName("手持测试用户");
users.add(dto0);
users = openMapper.getCheckUsers(qcCheckTaskProduce.getCheckType());
} else {
for (QcUserMaterialDTO user : users) {
user.setId(IdUtils.fastSimpleUUID());

@ -223,6 +223,15 @@
from qc_user_material qum
where qum.material_code = #{checkType} and qum.del_flag = '0'
</select>
<select id="getCheckUserBelongLine" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select qum.user_code userCode,
qum.user_name userName
from qc_user_material qum
where qum.material_code = #{checkType} and qum.del_flag = '0'
and qum.attr2 in(
select workorder_name from pro_order_workorder where workorder_code = #{orderNo} and del_flag = '0'
)
</select>
<select id="getSampNum" resultType="java.lang.String">
select sample_quality
from qc_sample_rule

@ -67,6 +67,17 @@ public class QcCheckTypeController extends BaseController {
return success(qcCheckTypeService.selectQcCheckTypeById(id));
}
//获取物料组
@GetMapping(value = "/listBelongToStandars")
public List<QcCheckType> listBelongToStandars() {
return qcCheckTypeService.getBelongToStandars();
}
//获取线体
@GetMapping(value = "/listBelongToLines")
public List<QcCheckType> listBelongToLines() {
return qcCheckTypeService.getBelongToLines();
}
/**
*
*/

@ -548,9 +548,7 @@ public class QcStaticTableController extends BaseController {
for (String titleKey : titleKeys) {
detailMap1.put(titleKey, detailMap0.get(0).get(titleKey + "Detail"));
}
if (StringUtils.isNotBlank((String) detailMap1.get(titleKeys.get(0)))) {
list.add(detailMap1);
}
}
@ -895,7 +893,7 @@ public class QcStaticTableController extends BaseController {
for(int m=0;m<titils.size();m++){
excelCols.add(new ExcelCol(titils.get(m), "monthNum"+m, 30));
}
excelCols.add(new ExcelCol("累计", "rowSum", 30));
String sheetName = "白坯不良率报表";
SXSSFWorkbook workbook = null;
try {
@ -939,7 +937,7 @@ public class QcStaticTableController extends BaseController {
for(int m=0;m<titils.size();m++){
excelCols.add(new ExcelCol(titils.get(m), "monthNum"+m, 30));
}
excelCols.add(new ExcelCol("累计", "rowSum", 30));
String sheetName = "白坯返工率报表";
SXSSFWorkbook workbook = null;
try {
@ -977,6 +975,7 @@ public class QcStaticTableController extends BaseController {
for(int m=0;m<titils.size();m++){
excelCols.add(new ExcelCol(titils.get(m), "monthNum"+m, 30));
}
excelCols.add(new ExcelCol("累计", "rowSum", 30));
String sheetName = "白坯缺陷排列报表";
SXSSFWorkbook workbook = null;

@ -163,7 +163,10 @@ public class QcUserMaterialController extends BaseController {
return toAjax(i);
}
@PutMapping("/updateBelongTo")
public AjaxResult updateBelongTo(@RequestBody QcUserMaterial qcUserMaterial) {
return toAjax(qcUserMaterialService.updateQcUserMaterial(qcUserMaterial));
}
}

@ -102,6 +102,8 @@ public interface QcCheckTaskIncomeMapper {
List<QcUserMaterialDTO> getUserByCheckType(String checkType);
List<QcUserMaterialDTO> getCheckUser(QcCheckTaskIncome qcCheckTaskIncome);
List<QcUserMaterialDTO> getCheckUserBelongStandar(QcCheckTaskIncome qcCheckTaskIncome);
List<QcUserMaterialDTO> getCheckUserBelongLine(QcCheckTaskIncome qcCheckTaskIncome);
int addCheckUsers(@Param("list") List<QcUserMaterialDTO> users);

@ -63,4 +63,6 @@ public interface QcCheckTypeMapper {
List<QcCheckType> getTopTaskInfo(QcCheckType qcCheckType);
List<QcCheckType> getBelongToLines();
List<QcCheckType> getBelongToStandars();
}

@ -64,5 +64,6 @@ public interface IQcCheckTypeService {
List<QcCheckType> getTopTaskInfo(QcCheckType qcCheckType);
List<QcCheckType> getBelongToLines();
List<QcCheckType> getBelongToStandars();
}

@ -235,18 +235,10 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
qcCheckTaskIncome.setCheckManName("");
qcCheckTaskIncome.setCheckManCode("");
/**qc_user_material取默认检查人**/
users = qcCheckTaskIncomeMapper.getCheckUser(qcCheckTaskIncome);
qcCheckTaskIncome.setBelongTo(group.getGroupId());
users = qcCheckTaskIncomeMapper.getCheckUserBelongStandar(qcCheckTaskIncome);
if(CollectionUtils.isEmpty(users)){
QcUserMaterialDTO dto0 = new QcUserMaterialDTO();
dto0.setId(IdUtils.fastSimpleUUID());
dto0.setBelongTo(beLongId);
dto0.setCheckNo(qcCheckTaskIncome.getCheckNo());
dto0.setCreateBy(createBy);
dto0.setFactoryCode(factoryCode);
dto0.setCreateTime(nowDate);
dto0.setUserCode("mobile");
dto0.setUserName("手持测试用户");
users.add(dto0);
users = qcCheckTaskIncomeMapper.getCheckUser(qcCheckTaskIncome);
}else{
for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID());

@ -239,7 +239,14 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
qcCheckTaskProduce.setCheckManName("");
qcCheckTaskProduce.setCheckManCode("");
/**qc_user_material取默认检查人**/
QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome();
qcCheckTaskIncome.setCheckType(qcCheckTaskProduce.getCheckType());
qcCheckTaskIncome.setMaterialCode(qcCheckTaskProduce.getMaterialCode());
users = qcCheckTaskIncomeMapper.getCheckUserBelongLine(qcCheckTaskIncome);
if(CollectionUtils.isEmpty(users)){
users = qcCheckTaskIncomeMapper.getUserByCheckType(qcCheckTaskProduce.getCheckType());
}
if(!CollectionUtils.isEmpty(users)){
for(QcUserMaterialDTO user:users){
user.setId(IdUtils.fastSimpleUUID());

@ -128,4 +128,16 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService {
return dtos;
}
@Override
@DS("#header.poolName")
public List<QcCheckType> getBelongToLines() {
return qcCheckTypeMapper.getBelongToLines();
}
@Override
@DS("#header.poolName")
public List<QcCheckType> getBelongToStandars() {
return qcCheckTypeMapper.getBelongToStandars();
}
}

@ -736,7 +736,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
return dtos;
}
/**2025-04-01调整过**/
@Override
@DS("#header.poolName")
public QcStaticTable getDLTableAvgInfo(QcStaticTable qcStaticTable) {
@ -769,20 +769,33 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
for (int n = 0; n < colCode2.size(); n++) {
String key = colCode1.get(m) + "-" + colCode2.get(n) + "-" + day;
QcStaticTable avgdto = titleMap.get(key);
if (avgdto != null) {
if (avgdto != null && StringUtils.isNotBlank(avgdto.getQuality())) {
String avgArrayStr = avgdto.getQuality().replace("[", "")
.replace("]", "")
.replace("\"", "");
.replace("\"", "")
.replaceAll("[\\u4e00-\\u9fa5]+", "")
.replace("/", "");
List<String> avgArray = Arrays.asList(avgArrayStr.split(","));
if(avgArray.size()==0){
continue;
}
BigDecimal addVal = new BigDecimal("0.00");
int s = 0;
for (String avgVal : avgArray) {
if(avgVal.matches(".*\\..*\\..*")){
addVal = addVal.add(new BigDecimal(avgVal.substring(2)));
s+=1;
}else{
addVal = addVal.add(new BigDecimal(avgVal));
if(StringUtils.isNotBlank(removeBeforeColon(avgVal))){
addVal = addVal.add(new BigDecimal(removeBeforeColon(avgVal)));
s+=1;
}
}
BigDecimal avg = addVal.divide(new BigDecimal(avgArray.size()), 2, BigDecimal.ROUND_HALF_UP);
}
BigDecimal avg = BigDecimal.ZERO;
if(s>0){
avg = addVal.divide(new BigDecimal(s), 2, BigDecimal.ROUND_HALF_UP);
}
result.put("mcode" + m + "Pcode" + n, avg);
detailResult.put("mcode" + m + "Pcode" + n + "Detail", avgArrayStr.replace(",", "\n"));
} else {
@ -812,7 +825,13 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return dto;
}
public static String removeBeforeColon(String input) {
int index = input.indexOf(':');
if (index != -1) {
return input.substring(index + 1);
}
return input;
}
@Override
@DS("#header.poolName")
public QcStaticTable getDLTableCPKInfo(QcStaticTable qcStaticTable) {
@ -1319,6 +1338,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
.replace("", "")
.replace(",,", ",")
.replace("..", ".")
.replaceAll("[\\u4e00-\\u9fa5]+", "")
.replace("\\", "");
List<String> actArray0 = Arrays.asList(actArrayStr.split(","));
List<String> actArray = new ArrayList<>();
@ -1415,29 +1435,36 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
dto1 = new HashMap<>();
dto1.put("materialName",bpMaterial.getMaterialName());
dto1.put("dataType","抽检数");
BigDecimal rowSum = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
dto1.put("monthNum"+m,sampMap.getSampleQty().replace(".00",""));
rowSum = rowSum.add(new BigDecimal(sampMap.getSampleQty()));
}
}
dto1.put("rowSum",rowSum.toString().replace(".00",""));
dtos.add(dto1);
dto2 = new HashMap<>();
dto2.put("materialName",bpMaterial.getMaterialName());
dto2.put("dataType","不良品数");
BigDecimal rowSum2 = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
dto2.put("monthNum"+m,sampMap.getNoOkQty().replace(".00",""));
rowSum2 = rowSum2.add(new BigDecimal(sampMap.getNoOkQty()));
}
}
dto2.put("rowSum",rowSum2.toString().replace(".00",""));
dtos.add(dto2);
dto3 = new HashMap<>();
dto3.put("materialName",bpMaterial.getMaterialName());
dto3.put("dataType","不良率%");
BigDecimal rowRadio = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
@ -1452,6 +1479,12 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
}
}
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
rowRadio = rowSum2
.multiply(new BigDecimal("100"))
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
}
dto3.put("rowSum",rowRadio.toString()+"%");
dtos.add(dto3);
}
@ -1470,6 +1503,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
dto6.put("materialName","总合计");
dto6.put("dataType","不良率%");
BigDecimal rowHjSample = BigDecimal.ZERO;
BigDecimal rowHjNoOk = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampHzMaps.get(days.get(m));
if(sampMap!=null){
@ -1484,8 +1519,18 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
.divide(sampleqty,2,BigDecimal.ROUND_HALF_UP);
dto6.put("monthNum"+m,nookrate+"%");
}
rowHjSample = rowHjSample.add(new BigDecimal(sampMap.getSampleQty()));
rowHjNoOk = rowHjNoOk.add(new BigDecimal(sampMap.getNoOkQty()));
}
}
dto4.put("rowSum",rowHjSample.toString());
dto5.put("rowSum",rowHjNoOk.toString());
BigDecimal hjnookrate = rowHjNoOk.multiply(new BigDecimal("100"))
.divide(rowHjSample,2,BigDecimal.ROUND_HALF_UP);
dto6.put("rowSum",hjnookrate+"%");
dtos.add(dto4);
dtos.add(dto5);
dtos.add(dto6);
@ -1537,29 +1582,36 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
dto1 = new HashMap<>();
dto1.put("materialName",bpMaterial.getMaterialName());
dto1.put("dataType","抽检次数");
BigDecimal rowSum = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
dto1.put("monthNum"+m,sampMap.getSampleQty().replace(".00",""));
rowSum = rowSum.add(new BigDecimal(sampMap.getSampleQty()));
}
}
dto1.put("rowSum",rowSum.toString().replace(".00",""));
dtos.add(dto1);
dto2 = new HashMap<>();
dto2.put("materialName",bpMaterial.getMaterialName());
dto2.put("dataType","返工次数");
BigDecimal rowSum2 = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
dto2.put("monthNum"+m,sampMap.getNoOkQty().replace(".00",""));
rowSum2 = rowSum2.add(new BigDecimal(sampMap.getNoOkQty()));
}
}
dto2.put("rowSum",rowSum2.toString().replace(".00",""));
dtos.add(dto2);
dto3 = new HashMap<>();
dto3.put("materialName",bpMaterial.getMaterialName());
dto3.put("dataType","返工率%");
BigDecimal rowRadio = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampMaps.get(bpMaterial.getMaterialCode()+days.get(m));
if(sampMap!=null){
@ -1574,6 +1626,12 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
}
}
if(rowSum.compareTo(BigDecimal.ZERO)!=0){
rowRadio = rowSum2
.multiply(new BigDecimal("100"))
.divide(rowSum,2,BigDecimal.ROUND_HALF_UP);
}
dto3.put("rowSum",rowRadio.toString()+"%");
dtos.add(dto3);
}
@ -1591,7 +1649,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
Map<String,String> dto6 = new HashMap<>();
dto6.put("materialName","总合计");
dto6.put("dataType","返工率%");
BigDecimal rowHjSample = BigDecimal.ZERO;
BigDecimal rowHjNoOk = BigDecimal.ZERO;
for(int m=0;m<days.size();m++){
QcStaticTable sampMap = sampHzMaps.get(days.get(m));
if(sampMap!=null){
@ -1606,8 +1665,17 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
.divide(sampleqty,2,BigDecimal.ROUND_HALF_UP);
dto6.put("monthNum"+m,nookrate+"%");
}
rowHjSample = rowHjSample.add(new BigDecimal(sampMap.getSampleQty()));
rowHjNoOk = rowHjNoOk.add(new BigDecimal(sampMap.getNoOkQty()));
}
}
dto4.put("rowSum",rowHjSample.toString());
dto5.put("rowSum",rowHjNoOk.toString());
BigDecimal hjnookrate = rowHjNoOk.multiply(new BigDecimal("100"))
.divide(rowHjSample,2,BigDecimal.ROUND_HALF_UP);
dto6.put("rowSum",hjnookrate+"%");
dtos.add(dto4);
dtos.add(dto5);
dtos.add(dto6);

@ -588,6 +588,16 @@
and attr1 = #{orderType}
</if>
</select>
<select id="getCheckUserBelongStandar" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select qum.user_code userCode,
qum.user_name userName
from qc_user_material qum
where qum.material_code = #{checkType} and qum.del_flag = '0'
and qum.attr2 = #{belongTo}
<if test = "orderType!=null">
and qum.attr1 = #{orderType}
</if>
</select>
<select id="getCkeckDefectList" resultType="com.op.quality.domain.QcCheckTaskDefect">
select
@ -886,6 +896,15 @@
from base_warehouse
where active_flag = '1' and del_flag = '0'
</select>
<select id="getCheckUserBelongLine" resultType="com.op.system.api.domain.quality.QcUserMaterialDTO">
select qum.user_code userCode,
qum.user_name userName
from qc_user_material qum
where qum.material_code = #{checkType} and qum.del_flag = '0'
and qum.attr2 in(
select workorder_name from pro_order_workorder where workorder_code = #{orderNo} and del_flag = '0'
)
</select>
<!--批量更新原始表-->
<update id="updateIncomeBatchList">

@ -67,6 +67,17 @@
or CONVERT(varchar(10),qct.create_time, 120) = CONVERT(varchar(10),DATEADD(DAY, -1, GETDATE()), 120)
)
</select>
<select id="getBelongToLines" resultType="com.op.quality.domain.QcCheckType">
select equipment_code typeCode,
equipment_name typeName
from base_equipment
where equipment_type_code = 'equ_type_bzx' and del_flag = '0'
</select>
<select id="getBelongToStandars" resultType="com.op.quality.domain.QcCheckType">
select id typeCode,
group_name typeName
from qc_material_group where group_code is not null and del_flag = '0'
</select>
<insert id="insertQcCheckType" parameterType="QcCheckType">
insert into qc_check_type

@ -114,7 +114,7 @@
</if>
</select>
<select id="getSelectedUsers" resultMap="QcUserMaterialResult">
select qum.id, qum.user_code, qum.user_name, qum.attr1
select qum.id, qum.user_code, qum.user_name, qum.attr1, qum.attr2
from qc_user_material qum
where qum.del_flag = '0' and qum.material_code = #{materialCode}
</select>
@ -164,7 +164,7 @@
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
attr2 = #{attr2},
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="createBy != null">create_by = #{createBy},</if>

Loading…
Cancel
Save