质量修改检验任务问题。

master
Leon 4 years ago
parent d0666401f1
commit dd6fd856c5

@ -9,10 +9,15 @@ package com.foreverwin.mesnac.anomaly.controller;
import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing;
import com.foreverwin.mesnac.anomaly.service.ReportService;
import com.foreverwin.mesnac.integration.model.IntegrationLog;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
import com.foreverwin.modular.core.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/REPORT")
public class ReportController {
@ -46,4 +51,21 @@ public class ReportController {
return R.failed(e.getMessage());
}
}
/**
*
*
* @param paramMap
* @return
*/
@GetMapping("/findInspectionTask")
public R findInspectionTask(@RequestParam(required = false) Map paramMap) {
try {
paramMap.put("site", CommonMethods.getSite());
List<Map<String, Object>> result = reportService.findInspectionTask(paramMap);
return R.ok(result);
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
}

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.anomaly.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing;
import com.foreverwin.mesnac.integration.model.IntegrationLog;
import org.apache.ibatis.annotations.Param;
@ -23,4 +24,6 @@ public interface ReportMapper {
List<Map<String,Object>> surplusReturnTable(@Param("site")String site, @Param("locale")String locale,
@Param("item")String item, @Param("itemDescription")String itemDescription);
List<Map<String, Object>> findInspectionTask(Map paramMap);
}

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.anomaly.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing;
import com.foreverwin.mesnac.integration.model.IntegrationLog;
@ -17,4 +18,12 @@ public interface ReportService {
List<Map<String, Object>> partsManufacturing(PartsManufacturing partsManufacturing);
List<Map<String, Object>> surplusReturnTable(String item, String itemDescription);
/**
*
*
* @param paramMap
* @return
*/
List<Map<String, Object>> findInspectionTask(Map paramMap);
}

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.anomaly.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing;
import com.foreverwin.mesnac.anomaly.mapper.ReportMapper;
import com.foreverwin.mesnac.anomaly.service.ReportService;
@ -55,4 +56,9 @@ public class ReportServiceImpl implements ReportService {
String site = CommonMethods.getSite();
return reportMapper.surplusReturnTable(site,locale,item,itemDescription);
}
@Override
public List<Map<String, Object>> findInspectionTask(Map paramMap) {
return reportMapper.findInspectionTask(paramMap);
}
}

@ -88,4 +88,54 @@
</if>
</where>
</select>
<select id="findInspectionTask" resultType="java.util.HashMap" parameterType="java.util.HashMap">
SELECT WT.DESCRIPTION WORK_CENTER_DESCRIPTION, C2.VALUE ITEM_NUMBER, C3.VALUE PRODUCT_MODEL,IM.ITEM ITEM, IT.DESCRIPTION ITEM_DESCRIPTION,
ZT.SFC, ZT.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, ZT.RESRCE, RS.DESCRIPTION RESOURCE_DESCRIPTION, ZT.TASK_NO, ZT.CATEGORY,
ZT."RESULT", ZT.CREATE_USER, ZNU.FULL_NAME, ZT.MODIFIED_DATE_TIME
FROM Z_INSPECTION_TASK ZT
LEFT JOIN WORK_CENTER WC ON WC.SITE = ZT.SITE AND WC.WORK_CENTER = ZT.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
INNER JOIN SHOP_ORDER SO ON ZT.SITE = SO.SITE AND ZT.SHOP_ORDER = SO.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS C1 ON C1.HANDLE = SO.HANDLE AND C1."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS C2 ON C2.HANDLE = SO.HANDLE AND C2."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN CUSTOM_FIELDS C3 ON C3.HANDLE = SO.HANDLE AND C3."ATTRIBUTE" = 'PRODUCT_MODEL'
INNER JOIN ITEM IM ON IM.HANDLE = SO.ITEM_BO
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = IM.HANDLE AND IT.LOCALE = 'zh'
INNER JOIN OPERATION OP ON OP.SITE = ZT.SITE AND OP.OPERATION = ZT.OPERATION AND OP.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = OP.HANDLE AND OT.LOCALE = 'zh'
INNER JOIN RESRCE RS ON RS.SITE = ZT.SITE AND RS.RESRCE = ZT.RESRCE
LEFT JOIN Z_NWA_USER ZNU ON ZNU.SITE = ZT.SITE AND ZNU.USER_NAME = ZT.CREATE_USER
WHERE ZT.SITE = #{site}
<if test="workCenter != null and workCenter != ''" >
AND WC.WORK_CENTER = #{workCenter}
</if>
<if test="category != null and category != ''" >
AND ZT.CATEGORY = #{category}
</if>
<if test="itemNumber != null and itemNumber != ''" >
AND C2.VALUE LIKE '%'||#{itemNumber}||'%'
</if>
<if test="model != null and model != ''" >
AND C3.VALUE LIKE '%'||#{model}||'%'
</if>
<if test="operation != null and operation != ''" >
AND ZT.OPERATION = #{operation}
</if>
<if test="resrce != null and resrce != ''" >
AND ZT.RESRCE = #{resrce}
</if>
<if test="result != null and result != ''" >
AND ZT.RESULT = #{result}
</if>
<if test="startFromDate != null and startFromDate != ''" >
AND ZT.MODIFIED_DATE_TIME >= TO_DATE(#{startFromDate}, 'YYYY-MM-DD')
</if>
<if test="startToDate != null and startToDate != ''" >
AND ZT.MODIFIED_DATE_TIME &lt;= TO_DATE(#{startToDate}|| '23:55:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
</select>
</mapper>

@ -672,4 +672,22 @@ public class DateUtil
return null;
}
}
/**
*
*
* @return 201812511183786
*/
public final static String getTimeString() {
Calendar calendar = new GregorianCalendar();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int msec = calendar.get(Calendar.MILLISECOND);
return String.valueOf(year) + String.valueOf(month) + String.valueOf(day) + String.valueOf(hour) + String.valueOf(minute) + String.valueOf(second) + String.valueOf(msec);
}
}

@ -316,7 +316,6 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
//----------------------------------------------------------------------------------------------------------
//查询工单下的生产批次清单
String workCenter = shopOrderReleaseModel.getWorkCenter();
List<Sfc> sfcList = sfcService.getSfcListByShopOrderBo(shopOrderBo);
if (sfcList == null || sfcList.size() <= 0) {
continue;
@ -344,7 +343,7 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
if (routerList == null || routerList.size() <= 0) {
throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在");
}
sfcDispatchRefresh(site, user, workCenter, shopOrderModel, sfcModel, routerList);
sfcDispatchRefresh(site, user, shopOrderModel, sfcModel, routerList);
}//end for -- sfcList
}// end for -- shopOrderList
@ -359,12 +358,11 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
*
* @param site
* @param user
* @param workCenter
* @param shopOrderModel
* @param sfcModel
* @param routerList
*/
public void sfcDispatchRefresh(String site, String user, String workCenter, ShopOrder shopOrderModel, Sfc sfcModel, List<RouterDTO> routerList) {
public void sfcDispatchRefresh(String site, String user, ShopOrder shopOrderModel, Sfc sfcModel, List<RouterDTO> routerList) {
LocalDateTime nowDate = LocalDateTime.now();
String router = routerList.get(0).getRouter();
@ -429,6 +427,20 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
//计算完成时间
//plannedCompleteDate = plannedStartDate.plusMinutes(prodHours.longValue());
//查询工序所属车间
String workCenter = null;
if (operation.contains("_")) {
workCenter = operation.split("_")[0];
} else {
workCenter = operation;
}
String workCenterBo = HandleEnum.WORK_CENTER.getHandle(site, workCenter);
WorkCenter workCenterModel = workCenterService.getById(workCenterBo);
if (workCenterModel == null) {
throw BusinessException.build("生产车间【" +workCenter+ "】不存在");
}
//SFC+Operation+stepID是否已经存在派工数据
List<SfcDispatch> list = sfcDispatchService.findSfcDispatch(site, sfc, operation, stepId);
if (list == null || list.size() <= 0) {

@ -6,6 +6,7 @@ import com.foreverwin.mesnac.common.model.InspectionTask;
import com.foreverwin.mesnac.common.model.InspectionTaskDetail;
import com.foreverwin.mesnac.common.service.InspectionTaskDetailService;
import com.foreverwin.mesnac.common.service.InspectionTaskService;
import com.foreverwin.mesnac.common.util.DateUtil;
import com.foreverwin.mesnac.common.util.StringUtil;
import com.foreverwin.mesnac.quality.dto.InspectionTaskManageRequest;
import com.foreverwin.mesnac.quality.mapper.InspectionTaskManageMapper;
@ -53,10 +54,15 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
//查询检验项目
List<InspectionTaskManageDetail> inspectionItemDetailList = this.getInspectionTaskDetail(taskBo);
if (!Constants.INSPECTION_TASK_STATUS_NEW.equals(inspectionTaskManage.getStatus())) {
inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList);
return inspectionTaskManage;
}
if (inspectionItemDetailList == null || inspectionItemDetailList.size() <= 0) {
inspectionItemDetailList = this.getInspectionItemDetail(inspectionItemBo);
if (inspectionItemDetailList == null || inspectionItemDetailList.size() <= 0) {
throw BusinessException.build("没有找到检验项目检验参数!");
return inspectionTaskManage;
}
List<InspectionTaskDetail> taskDetailList = new ArrayList<>();
@ -82,11 +88,10 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
if (taskDetailList != null && taskDetailList.size() > 0) {
inspectionTaskDetailService.saveBatch(taskDetailList);
}
inspectionItemDetailList = this.getInspectionTaskDetail(taskBo);
}
inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList);
inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList);
return inspectionTaskManage;
}
@ -116,8 +121,8 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
}
List<InspectionTaskManageDetail> inspectionItemDetailList = this.getInspectionTaskDetail(HandleEnum.INSPECTION_TASK.getHandle(taskNo));
if (inspectionItemDetailList != null || inspectionItemDetailList.size() > 0) {
throw BusinessException.build("检验任务"+taskNo+"有检验项目,不允许执行合格操作");
if (inspectionItemDetailList != null && inspectionItemDetailList.size() > 0) {
throw BusinessException.build("检验任务【"+taskNo+"】有检验项目,不允许执行合格操作");
}
@ -139,56 +144,74 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
@Override
public void saveInspectionTaskDetail(String site, String user, InspectionTaskManage inspectionTaskManage) {
List<InspectionTaskManageDetail> taskDetailList = inspectionTaskManage.getInspectionTaskDetailList();
if (taskDetailList == null || taskDetailList.size() <= 0) {
return;
}
LocalDateTime dateTime = LocalDateTime.now();
String taskNo = inspectionTaskManage.getTaskNo();
String type = inspectionTaskManage.getOperationType();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List<InspectionTaskDetail> inspectionTaskDetailList = new ArrayList<>();
//修改明细数据
for (InspectionTaskManageDetail manageDetail : taskDetailList) {
String isRequired = manageDetail.getIsRequired();
String paramNo = manageDetail.getParamNo();
String checkValues = manageDetail.getCheckValues();
if ("Y".equals(isRequired) && StringUtil.isBlank(checkValues) && "SUBMIT".equals(type)) {
throw BusinessException.build("检验项目【" +paramNo+"】值必输!");
}
List<InspectionTaskManageDetail> taskDetailList = inspectionTaskManage.getInspectionTaskDetailList();
if (taskDetailList != null && taskDetailList.size() > 0) {
List<InspectionTaskDetail> inspectionTaskDetailList = new ArrayList<>();
//修改明细数据
for (InspectionTaskManageDetail manageDetail : taskDetailList) {
String isRequired = manageDetail.getIsRequired();
String paramNo = manageDetail.getParamNo();
String checkValues = manageDetail.getCheckValues();
if ("Y".equals(isRequired) && StringUtil.isBlank(checkValues) && "SUBMIT".equals(type)) {
throw BusinessException.build("检验项目【" + paramNo + "】值必输!");
}
InspectionTaskDetail taskDetail = new InspectionTaskDetail();
taskDetail.setHandle(manageDetail.getHandle());
taskDetail.setCheckValues(checkValues);
taskDetail.setResult(manageDetail.getResult());
taskDetail.setRemark(manageDetail.getRemark());
taskDetail.setCheckUser(user);
taskDetail.setCheckDate(dateTime);
inspectionTaskDetailList.add(taskDetail);
}
InspectionTaskDetail taskDetail = new InspectionTaskDetail();
taskDetail.setHandle(manageDetail.getHandle());
taskDetail.setCheckValues(checkValues);
taskDetail.setResult(manageDetail.getResult());
taskDetail.setRemark(manageDetail.getRemark());
taskDetail.setCheckUser(user);
taskDetail.setCheckDate(dateTime);
inspectionTaskDetailList.add(taskDetail);
}
if (inspectionTaskDetailList != null && inspectionTaskDetailList.size() > 0) {
inspectionTaskDetailService.updateBatchById(inspectionTaskDetailList);
if (inspectionTaskDetailList != null && inspectionTaskDetailList.size() > 0) {
inspectionTaskDetailService.updateBatchById(inspectionTaskDetailList);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
String result = inspectionTaskManage.getResult();
String taskNo = inspectionTaskManage.getTaskNo();
//修改主表数据
InspectionTask inspectionTaskModel = inspectionTaskService.getInspectionTaskByTaskNo(site, taskNo);
if (inspectionTaskModel == null) {
throw BusinessException.build("检验任务【" +taskNo+ "】不存在!");
}
String status = inspectionTaskModel.getStatus();
String category = inspectionTaskModel.getCategory();
if (!Constants.INSPECTION_TASK_STATUS_NEW.equals(status) && !Constants.INSPECTION_TASK_STATUS_DOING.equals(status)) {
throw BusinessException.build("检验任务【" +taskNo+ "】不是【新建|检验中】,不允许操作!");
}
inspectionTaskModel.setStatus("SAVE".equals(type) ? Constants.INSPECTION_TASK_STATUS_DOING : Constants.INSPECTION_TASK_STATUS_COMPLETE);
inspectionTaskModel.setResult(inspectionTaskManage.getResult());
inspectionTaskModel.setResult(result);
inspectionTaskModel.setComments(inspectionTaskManage.getComments());
inspectionTaskModel.setModifyUser(user);
inspectionTaskModel.setModifiedDateTime(dateTime);
inspectionTaskService.updateById(inspectionTaskModel);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//如果专检不合格,生产新的检验任务
if (!Constants.INSPECTION_TYPE_P.equals(category) || !"NG".equals(result) || !"SUBMIT".equals(type)) {
return;
}
//任务主表
InspectionTask newInspectionTask = new InspectionTask();
BeanUtils.copyProperties(inspectionTaskModel, newInspectionTask);
String newTaskNo = "H_" + DateUtil.getTimeString();
String handle = HandleEnum.INSPECTION_TASK.getHandle(site, newTaskNo);
newInspectionTask.setHandle(handle);
newInspectionTask.setTaskNo(taskNo);
newInspectionTask.setStatus(Constants.INSPECTION_TASK_STATUS_NEW);
newInspectionTask.setResult(null);
newInspectionTask.setComments(null);
inspectionTaskService.save(newInspectionTask);
}
}

Loading…
Cancel
Save