Merge remote-tracking branch 'origin/master'

master
zpl 4 years ago
commit eb02cd1d08

@ -217,7 +217,11 @@ public class AbnormalBillController {
@RequestParam List<String> ncGroupAndNcCodes,
@RequestParam List<String> dutyCauseType,
@RequestParam List<String> dutyType){
return R.ok(abnormalBillService.anomalyReport(abnormalBill, abnormalBillDispose,ncGroupAndNcCodes,dutyCauseType,dutyType));
try{
return R.ok(abnormalBillService.anomalyReport(abnormalBill, abnormalBillDispose,ncGroupAndNcCodes,dutyCauseType,dutyType));
}catch(Exception e){
return R.failed("质量异常提报失败,"+e.getMessage());
}
}
/**
@ -227,7 +231,12 @@ public class AbnormalBillController {
*/
@GetMapping("/anomalyReportDevice")
public R anomalyReportDevice(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose){
return R.ok(abnormalBillService.anomalyReportDevice(abnormalBill,abnormalBillDispose));
try{
return R.ok(abnormalBillService.anomalyReportDevice(abnormalBill,abnormalBillDispose));
}catch (Exception e){
return R.failed("设备异常提报失败,"+e.getMessage());
}
}
@ -239,12 +248,21 @@ public class AbnormalBillController {
*/
@GetMapping("/cancelBrowse")
public R cancelBrowse(String handle, String cancelBrowse,String code,String cancelSendUserGroup){
return R.ok( abnormalBillService.cancelBrowse(handle,cancelBrowse,code,cancelSendUserGroup));
try{
return R.ok( abnormalBillService.cancelBrowse(handle,cancelBrowse,code,cancelSendUserGroup));
}catch(Exception e){
return R.failed("取消失败,"+e.getMessage());
}
}
@GetMapping("/backLog")
public R backLog(AbnormalBillDto abnormalBillDto){
return R.ok(abnormalBillService.backLog(abnormalBillDto));
try{
return R.ok(abnormalBillService.backLog(abnormalBillDto));
}catch(Exception e){
return R.failed("检索失败,"+e.getMessage());
}
}
/**
@ -254,7 +272,12 @@ public class AbnormalBillController {
*/
@GetMapping("/findAllByAbnormalNo")
public R findAllByAbnormalNo(AbnormalBill abnormalBill){
return R.ok(abnormalBillService.findAllByAbnormalNo(abnormalBill));
try{
return R.ok(abnormalBillService.findAllByAbnormalNo(abnormalBill));
}catch (Exception e){
return R.failed("检索失败,"+e.getMessage());
}
}
/**
@ -262,7 +285,12 @@ public class AbnormalBillController {
*/
@GetMapping("/findAllByAbnormalNoDevice")
public R findAllByAbnormalNoDevice(AbnormalBill abnormalBill){
return R.ok(abnormalBillService.findAllByAbnormalNoDevice(abnormalBill));
try{
return R.ok(abnormalBillService.findAllByAbnormalNoDevice(abnormalBill));
}catch (Exception e){
return R.failed("设备异常响应检索失败,"+e.getMessage());
}
}
/**
@ -272,8 +300,12 @@ public class AbnormalBillController {
*/
@GetMapping("/resProcessing")
public R resProcessing(AbnormalBill abnormalBill){
abnormalBillService.resProcessing(abnormalBill);
return R.ok();
try{
abnormalBillService.resProcessing(abnormalBill);
return R.ok();
}catch(Exception e){
return R.failed("响应处理失败,"+e.getMessage());
}
}
/**
@ -284,8 +316,12 @@ public class AbnormalBillController {
*/
@GetMapping("/programConfirm")
public R programConfirm(AbnormalBill abnormalBill,AbnormalBillDispose abnormalBillDispose){
abnormalBillService.programConfirm(abnormalBill,abnormalBillDispose);
return R.ok();
try{
abnormalBillService.programConfirm(abnormalBill,abnormalBillDispose);
return R.ok();
}catch (Exception e){
return R.failed("方案确认失败,"+e.getMessage());
}
}
/**
@ -298,8 +334,12 @@ public class AbnormalBillController {
public R dutyConfirm(AbnormalBill abnormalBill,AbnormalBillDispose abnormalBillDispose,
@RequestParam List<String> dutyCauseType,
@RequestParam List<String> dutyType){
abnormalBillService.dutyConfirm(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType);
return R.ok();
try{
abnormalBillService.dutyConfirm(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType);
return R.ok();
}catch(Exception e){
return R.failed("判责提交失败,"+e.getMessage());
}
}
/**
@ -310,25 +350,42 @@ public class AbnormalBillController {
*/
@GetMapping("/anomalyShutDown")
public R anomalyShutDown(AbnormalBill abnormalBill,AbnormalBillDispose abnormalBillDispose){
abnormalBillService.anomalyShutDown(abnormalBill,abnormalBillDispose);
return R.ok();
try{
abnormalBillService.anomalyShutDown(abnormalBill,abnormalBillDispose);
return R.ok();
}catch (Exception e){
return R.failed("闭环关闭失败,"+e.getMessage());
}
}
@GetMapping("/findResrceBySfc")
public R findResrceBySfc(SfcDispatchDto sfcDispatch){
return R.ok(sfcDispatchCommonService.findResrceBySfc(sfcDispatch));
try{
return R.ok(sfcDispatchCommonService.findResrceBySfc(sfcDispatch));
}catch (Exception e){
return R.failed("根据sfc查找设备失败,"+e.getMessage());
}
}
@GetMapping("/show")
public R showFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
return R.ok(fileUploadedService.showFile(request,response));
try{
return R.ok(fileUploadedService.showFile(request,response));
}catch (Exception e){
return R.failed("显示图片失败,"+e.getMessage());
}
}
@PostMapping("/delete")
public R delete(String ftpPath,String fileName){
fileUploadedService.deleteFile(ftpPath,fileName);
// abnormalBillService.deleteFileInDatabase(ftpPath,fileName);
return R.ok();
try{
fileUploadedService.deleteFile(ftpPath,fileName);
return R.ok();
}catch (Exception e){
return R.failed("图片删除失败,"+e.getMessage());
}
}
@GetMapping("/findUploadPictureByAbnormalBo")

@ -9,10 +9,13 @@ 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
@ -62,4 +65,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;
@ -26,4 +27,6 @@ public interface ReportMapper {
List<Map<String,Object>> resourceRepair(@Param("site")String site, @Param("locale")String locale,
@Param("param")Map<String, Object> map);
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;
@ -19,4 +20,12 @@ public interface ReportService {
List<Map<String, Object>> surplusReturnTable(String item, String itemDescription);
List<Map<String, Object>> resourceRepair(Map<String,Object> map);
/**
*
*
* @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;
@ -130,4 +131,9 @@ public class ReportServiceImpl implements ReportService {
return maps;
}
@Override
public List<Map<String, Object>> findInspectionTask(Map paramMap) {
return reportMapper.findInspectionTask(paramMap);
}
}

@ -138,4 +138,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:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
</select>
</mapper>

@ -16,6 +16,9 @@ public class CustomFieldConstant {
public static final String RESRCE_CUSTOM_FIELD_PRINT_NAME = "PRINT_NAME";//打印机名称
public static final String RESRCE_CUSTOM_FIELD_IS_SPOT = "IS_SPOT";//打印机名称
/**
*
*/

@ -35,5 +35,5 @@ public interface InspectionTaskService extends IService<InspectionTask> {
InspectionTask isCreateTask(String site, String category, String sfc, String operation, String stepId);
void createCompleteTask(Map<String, Object> paramMap);
void createNewTask(Map<String, Object> paramMap);
}

@ -264,7 +264,7 @@ public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper,
}
@Override
public void createCompleteTask(Map<String, Object> paramMap) {
public void createNewTask(Map<String, Object> paramMap) {
String site = CommonMethods.getSite();
String category = (String) paramMap.get("CATEGORY");
String sfc = (String) paramMap.get("SFC");

@ -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);
}
}

@ -637,6 +637,7 @@
,PREOT.DESCRIPTION LAST_OPERATION,zprt.*,zsd.DISPATCH_NO,zsd.RESOURCE_TYPE,RES.DESCRIPTION RESRCE_DESC,ITT.DESCRIPTION ITEM_DESC,OT.DESCRIPTION OPERATION_DESC
FROM Z_PROD_READY_TASK zprt
JOIN Z_SFC_DISPATCH zsd ON ZPRT.SFC_DISPATCH_BO=ZSD.HANDLE
LEFT JOIN Z_PRINT_LOG ZPL ON ZPL.SFC=ZSD.SFC AND ZPL.SITE=ZSD.SITE AND ZPL.STEP_ID=ZSD.STEP_ID
LEFT JOIN Z_SFC_DISPATCH PREZSD ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1
JOIN OPERATION OP ON OP.OPERATION = zprt.OPERATION AND OP.SITE = zprt.SITE AND OP.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = OP.HANDLE AND OT.LOCALE =#{locale}
@ -654,7 +655,8 @@
<if test="entity.workCenter!=null and entity.workCenter!='' "> AND ZPRT.WORK_CENTER=#{entity.workCenter}</if>
<if test="entity.resrce!=null and entity.resrce!='' "> AND ZPRT.RESRCE=#{entity.resrce}</if>
<if test="entity.dispatchNo!=null and entity.dispatchNo!='' "> AND ZSD.DISPATCH_NO=#{entity.dispatchNo}</if>
<if test="entity.status!=null and entity.status!='' "> AND ZPRT.STATUS=#{entity.status}</if>
<if test="entity.status!=null and entity.status!='' and entity.status!='PRINT'"> AND ZPRT.STATUS=#{entity.status}</if>
<if test="entity.status!=null and entity.status!='' and entity.status eq 'PRINT' "> AND ZPL.IS_PRINT='true' AND ZPRT.STATUS='FINISH'</if>
<if test="entity.result!=null and entity.result!='' "> AND ZPRT.RESULT=#{entity.result}</if>
<if test="entity.sfcStepStatus!=null and entity.sfcStepStatus!='' and entity.sfcStepStatus=='COMPLETE' "> AND ZSD.DISPATCH_STATUS=#{entity.sfcStepStatus}</if>
<if test="entity.sfcStepStatus!=null and entity.sfcStepStatus!='' and entity.sfcStepStatus!='COMPLETE' "> AND ZSD.DISPATCH_STATUS!='COMPLETE'</if>

@ -38,7 +38,7 @@ spring:
merge-sql: true
slow-sql-millis: 100
activemq:
enabled: false
enabled: true
brokerUrl: tcp://localhost:61616?wireFormat.maxInactivityDuration=0
password: admin
user: admin

@ -8,7 +8,7 @@ spring:
driver-class-name: com.sap.db.jdbc.Driver
jndi-name: jdbc/jts/wipPool
activemq:
enabled: false
enabled: true
brokerUrl: tcp://172.16.251.166:61616?wireFormat.maxInactivityDuration=0
password: admin
user: admin

@ -8,7 +8,7 @@ spring:
driver-class-name: com.sap.db.jdbc.Driver
jndi-name: jdbc/jts/wipPool
activemq:
enabled: false
enabled: true
brokerUrl: tcp://172.16.251.133:61616?wireFormat.maxInactivityDuration=0
password: admin
user: admin
@ -34,11 +34,12 @@ ws:
pwd: a123456
valid: N
#ftp
ftp:
host:
host: 172.16.251.165
port: 21
username:
password:
username: mesftp
password: mesnac1@3
#打印服务器配置
print:

@ -43,101 +43,20 @@ public class SfcDispatchController {
@Autowired
public SfcDispatchService sfcDispatchService;
/**
*
*
* @param workCenter
* @param dispatchStatus
* @param item
* @param workOrder
* @param shopOrder
* @param resrce
* @param resourceType
* @param operation
* @param sfc
* @param componentDescription
* @param turnOperation
* @param isDispatch
* @param startFromDate_S
* @param startToDate_S
* @param completeFromDate_S
* @param completeToDate_S
* @return
*/
@ResponseBody
@GetMapping("getSfcDispatch")
public R getSfcDispatch(String workCenter, String dispatchStatus, String item, String itemNumber, String workOrder, String shopOrder, String blankingSize,
String resrce, String resourceType, String operation, String operationDescription, String sfc, String component, String componentDescription, String turnOperation,
String isDispatch, String startFromDate_S, String startToDate_S, String completeFromDate_S, String completeToDate_S) {
List<SfcDispatchDto> list;
try {
SfcDispatchDto sfcDispatchDto = new SfcDispatchDto();
sfcDispatchDto.setSite(CommonMethods.getSite());
sfcDispatchDto.setUser(CommonMethods.getUser());
sfcDispatchDto.setWorkCenter(workCenter);
sfcDispatchDto.setDispatchStatus(dispatchStatus);
sfcDispatchDto.setItem(item);
sfcDispatchDto.setItemNumber(itemNumber);
sfcDispatchDto.setWorkOrder(workOrder);
sfcDispatchDto.setShopOrder(shopOrder);
sfcDispatchDto.setResrce(resrce);
sfcDispatchDto.setResourceType(resourceType);
sfcDispatchDto.setOperation(operation);
sfcDispatchDto.setSfc(sfc);
sfcDispatchDto.setBlankingSize(blankingSize);
sfcDispatchDto.setComponent(component);
sfcDispatchDto.setComponentDescription(componentDescription);
sfcDispatchDto.setTurnOperation(turnOperation);
sfcDispatchDto.setIsDispatch(isDispatch);
if (startFromDate_S != null) {
sfcDispatchDto.setStartFromDate(DateUtil.parse(startFromDate_S));
}
if (startToDate_S != null) {
sfcDispatchDto.setStartToDate(DateUtil.parse(startToDate_S));
}
if (completeFromDate_S != null) {
sfcDispatchDto.setCompleteFromDate(DateUtil.parse(completeFromDate_S));
}
if (completeToDate_S != null) {
sfcDispatchDto.setCompleteToDate(DateUtil.parse(completeToDate_S));
}
list = sfcDispatchService.findSfcDispatchList(sfcDispatchDto);
} catch (Exception e) {
return R.failed(e.getMessage());
}
return R.ok(list);
}
/**
*
*
* @param sfcDispatchDto
* @param paramMap
* @return
*/
@ResponseBody
@PostMapping("findSfcDispatch")
public R findSfcDispatch(@RequestBody SfcDispatchDto sfcDispatchDto) {
@GetMapping("findSfcDispatch")
public R findSfcDispatch(@RequestParam(required = false) Map paramMap) {
List<SfcDispatchDto> list;
try {
sfcDispatchDto.setSite(CommonMethods.getSite());
sfcDispatchDto.setUser(CommonMethods.getUser());
if (sfcDispatchDto.getStartFromDate_S() != null) {
sfcDispatchDto.setStartFromDate(DateUtil.parse(sfcDispatchDto.getStartFromDate_S()));
}
if (sfcDispatchDto.getStartToDate_S() != null) {
sfcDispatchDto.setStartToDate(DateUtil.parse(sfcDispatchDto.getStartToDate_S()));
}
if (sfcDispatchDto.getCompleteFromDate_S() != null) {
sfcDispatchDto.setCompleteFromDate(DateUtil.parse(sfcDispatchDto.getCompleteFromDate_S()));
}
if (sfcDispatchDto.getCompleteToDate_S() != null) {
sfcDispatchDto.setCompleteToDate(DateUtil.parse(sfcDispatchDto.getCompleteToDate_S()));
}
list = sfcDispatchService.findSfcDispatchList(sfcDispatchDto);
paramMap.put("site", CommonMethods.getSite());
list = sfcDispatchService.findSfcDispatchList(paramMap);
} catch (Exception e) {
return R.failed(e.getMessage());
}
@ -297,24 +216,16 @@ public class SfcDispatchController {
return R.ok(result);
}
@PostMapping("/gantt-list")
public R ganttList(@RequestBody SfcDispatchDto sfcDispatchDto) {
public R ganttList(@RequestParam(required = false) Map paramMap) {
Map<String, Object> result = new HashMap<>();
try {
String site = CommonMethods.getSite();
if (StringUtil.isBlank(sfcDispatchDto.getStartFromDate_S())) {
throw BusinessException.build("派工开始时间不能为空!");
}
if (StringUtil.isBlank(sfcDispatchDto.getStartToDate_S())) {
throw BusinessException.build("派工开始时间不能为空!");
}
sfcDispatchDto.setSite(site);
sfcDispatchDto.setDispatchStatus(DispatchStatusEnum.RELEASE.getCode());
sfcDispatchDto.setStartFromDate(DateUtil.parseDate(sfcDispatchDto.getStartFromDate_S()));
sfcDispatchDto.setStartToDate(DateUtil.parseDate(sfcDispatchDto.getStartToDate_S()));
result = sfcDispatchService.ganttList(site, sfcDispatchDto);
paramMap.put("site", site);
paramMap.put("", DispatchStatusEnum.RELEASE.getCode());
result = sfcDispatchService.ganttList(site, paramMap);
} catch (Exception e) {
return R.failed(e.getMessage());
}

@ -8,6 +8,7 @@ import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -25,10 +26,10 @@ public interface SfcDispatchMapper extends BaseMapper<SfcDispatch> {
/**
*
*
* @param sfcDispatchDto
* @param paramMap
* @return
*/
List<SfcDispatchDto> findSfcDispatchList(SfcDispatchDto sfcDispatchDto);
List<SfcDispatchDto> findSfcDispatchList(Map paramMap);
/**
*

@ -33,10 +33,10 @@ public interface SfcDispatchService extends IService<SfcDispatch> {
/**
*
*
* @param sfcDispatchDto
* @param paramMap
* @return
*/
List<SfcDispatchDto> findSfcDispatchList(SfcDispatchDto sfcDispatchDto);
List<SfcDispatchDto> findSfcDispatchList(Map paramMap);
/**
*
@ -105,10 +105,10 @@ public interface SfcDispatchService extends IService<SfcDispatch> {
*
*
* @param site
* @param sfcDispatchDto
* @param paramMap
* @return
*/
Map<String, Object> ganttList(String site, SfcDispatchDto sfcDispatchDto);
Map<String, Object> ganttList(String site, Map paramMap);
}

@ -88,8 +88,8 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
}
@Override
public List<SfcDispatchDto> findSfcDispatchList(SfcDispatchDto sfcDispatchDto) {
List<SfcDispatchDto> list = sfcDispatchMapper.findSfcDispatchList(sfcDispatchDto);
public List<SfcDispatchDto> findSfcDispatchList(Map paramMap) {
List<SfcDispatchDto> list = sfcDispatchMapper.findSfcDispatchList(paramMap);
if (list == null || list.size() <= 0) {
return list;
}
@ -282,11 +282,11 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
}
@Override
public Map<String, Object> ganttList(String site, SfcDispatchDto sfcDispatchDto) {
public Map<String, Object> ganttList(String site, Map paramMap) {
Map<String, Object> map = new HashMap<>();
//查询派工数据
List<SfcDispatchDto> scheduleList = this.findSfcDispatchList(sfcDispatchDto);
List<SfcDispatchDto> scheduleList = this.findSfcDispatchList(paramMap);
if (scheduleList == null || scheduleList.size() <= 0) {
return map;
}
@ -299,7 +299,9 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
}
});
Map<String, Map<String, List<WorkCenterWorkTimeDTO>>> processedMap = this.processWorkCenterWorkTimes(site, workCenterList, sfcDispatchDto.getStartFromDate(), sfcDispatchDto.getStartToDate());
Date startFromDate = (Date) paramMap.get("startFromDate");
Date StartToDate = (Date) paramMap.get("StartToDate");
Map<String, Map<String, List<WorkCenterWorkTimeDTO>>> processedMap = this.processWorkCenterWorkTimes(site, workCenterList, startFromDate, StartToDate);
map.put("workCenterWorkTimes", processedMap);
return map;

@ -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) {

@ -668,96 +668,102 @@
</select>
<select id="findSfcDispatchList" resultMap="FullResultMap">
SELECT WIP.*, V1.STEP_ID PREPOSITION_STEP_ID, V1.OPERATION PREPOSITION_OPERATION,
CASE WHEN WIP.DISPATCH_SEQ = 1 OR V1.DISPATCH_STATUS = 'COMPLETE' THEN N'是' ELSE N'否' END IS_COMPLETED,
CASE WHEN WIP.DISPATCH_STATUS = 'NEW' THEN N'新建' WHEN WIP.DISPATCH_STATUS = 'CANCEL' THEN N'取消'
WHEN WIP.DISPATCH_STATUS = 'PAUSE' THEN N'暂停' WHEN WIP.DISPATCH_STATUS = 'RELEASE' THEN N'发布'
END AS STATUS_NAME, 'ADMINISTRATOR' AS ROLE
SELECT WIP.*
FROM (
SELECT DISTINCT SD.HANDLE, SD.SITE, SD.SHOP_ORDER, SD.DISPATCH_NO, C2.VALUE ITEM_NUMBER, C1.VALUE WORK_ORDER, IM.HANDLE ITEM_BO, IM.ITEM, IT.DESCRIPTION ITEM_DESCRIPTION, SD.SFC, SD.DISPATCH_STATUS,
SD.STEP_ID, SD.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, SD.RESOURCE_TYPE, SD.RESRCE, SD.EMPLOYEE, SD.EMPLOYEE USER_NAME, SD.DISPATCH_QTY, SD.PROD_HOURS, RS.DESCRIPTION RESOURCE_DESCRIPTION,
CASE WHEN SD.DISPATCH_STATUS = 'COMPLETE' THEN SD.DISPATCH_QTY ELSE 0 END COMPLETED_QTY, SD.PLANNED_START_DATE, SD.PLANNED_COMP_DATE, SD.WORK_CENTER, SD.IS_DISPATCH, SD.EMPLOYEE_DESCRIPTION,
SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.DISPATCH_SEQ-1 BEFORE_SEQ, SD.DISPATCH_SEQ+1 AFTER_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE,
CASE WHEN IM.LOT_SIZE = 1 THEN N'是' ELSE N'否' END IS_MAJOR, CASE WHEN SD.TURN_OPERATION = 'true' THEN N'是' ELSE N'否' END TURN_OPERATION, SD.BLANKING_SIZE,
WR.WORK_CENTER RESOURCE_WORK_CENTER
FROM Z_SFC_DISPATCH SD
LEFT JOIN RESRCE RS ON SD.SITE = RS.SITE AND SD.RESRCE = RS.RESRCE
INNER JOIN SHOP_ORDER SO ON SO.SITE = SD.SITE AND SO.SHOP_ORDER = SD.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'
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 O ON O.SITE = SD.SITE AND O.OPERATION = SD.OPERATION AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SO.BOM_BO
INNER JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO
LEFT JOIN ITEM_T CPT ON CPT.ITEM_BO = CP.HANDLE AND CPT.LOCALE = 'zh'
LEFT JOIN WORK_CENTER_MEMBER WCM ON WCM.WORK_CENTER_OR_RESOURCE_GBO = 'ResourceBO:' || SD.SITE || ',' || SD.RESRCE
LEFT JOIN WORK_CENTER WR ON WR.HANDLE = WCM.WORK_CENTER_BO
WHERE SD.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND SD.OPERATION LIKE #{workCenter}||'%'
</if>
<if test="dispatchStatus != null and dispatchStatus != ''">
AND SD.DISPATCH_STATUS = #{dispatchStatus}
</if>
<if test="item != null and item != ''">
AND IM.ITEM = #{item}
</if>
<if test="workOrder != null and workOrder != ''">
AND C1.VALUE LIKE '%' ||#{workOrder}|| '%'
</if>
<if test="itemNumber != null and itemNumber != ''">
AND C2.VALUE LIKE '%' ||#{itemNumber}|| '%'
</if>
<if test="shopOrder != null and shopOrder != ''">
AND SD.SHOP_ORDER = #{shopOrder}
</if>
<if test="resourceType != null and resourceType != ''">
AND SD.RESOURCE_TYPE = #{resourceType}
</if>
<if test="resrce != null and resrce != ''">
AND SD.RESRCE = #{resrce}
</if>
<if test="operation != null and operation != ''">
AND SD.OPERATION = #{operation}
</if>
<if test="operationDescription != null and operationDescription != ''">
AND OT.DESCRIPTION = #{operationDescription}
</if>
<if test="sfc != null and sfc != ''">
AND SD.SFC = #{sfc}
</if>
<if test="turnOperation != null and turnOperation != ''">
AND SD.TURN_OPERATION = #{turnOperation}
</if>
<if test="component != null and component != ''">
AND CP.ITEM = #{component}
</if>
<if test="componentDescription != null and componentDescription != ''">
AND CPT.DESCRIPTION LIKE '%' || #{componentDescription} || '%'
</if>
<if test="isDispatch != null and isDispatch != ''">
AND SD.IS_DISPATCH = #{isDispatch}
</if>
<if test="blankingSize != null and blankingSize != ''">
AND SD.BLANKING_SIZE LIKE '%'||#{blankingSize}||'%'
</if>
<if test="startFromDate != null">
AND SO.PLANNED_START_DATE >= #{startFromDate}
</if>
<if test="startToDate != null">
AND SO.PLANNED_START_DATE &lt;= #{startToDate}
</if>
<if test="completeFromDate != null">
AND SO.PLANNED_COMP_DATE >= #{completeFromDate}
</if>
<if test="completeToDate != null">
AND SO.PLANNED_COMP_DATE &lt;= #{completeToDate}
</if>
SELECT WIP.*, V1.STEP_ID PREPOSITION_STEP_ID, V1.OPERATION PREPOSITION_OPERATION,
CASE WHEN WIP.DISPATCH_SEQ = 1 OR V1.DISPATCH_STATUS = 'COMPLETE' THEN N'是' ELSE N'否' END IS_COMPLETED,
CASE WHEN WIP.DISPATCH_STATUS = 'NEW' THEN N'新建' WHEN WIP.DISPATCH_STATUS = 'CANCEL' THEN N'取消'
WHEN WIP.DISPATCH_STATUS = 'PAUSE' THEN N'暂停' WHEN WIP.DISPATCH_STATUS = 'RELEASE' THEN N'发布'
END AS STATUS_NAME, 'ADMINISTRATOR' AS ROLE
FROM (
SELECT DISTINCT SD.HANDLE, SD.SITE, SD.SHOP_ORDER, SD.DISPATCH_NO, C2.VALUE ITEM_NUMBER, C1.VALUE WORK_ORDER, IM.HANDLE ITEM_BO, IM.ITEM, IT.DESCRIPTION ITEM_DESCRIPTION, SD.SFC, SD.DISPATCH_STATUS,
SD.STEP_ID, SD.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, SD.RESOURCE_TYPE, SD.RESRCE, SD.EMPLOYEE, SD.EMPLOYEE USER_NAME, SD.DISPATCH_QTY, SD.PROD_HOURS, RS.DESCRIPTION RESOURCE_DESCRIPTION,
CASE WHEN SD.DISPATCH_STATUS = 'COMPLETE' THEN SD.DISPATCH_QTY ELSE 0 END COMPLETED_QTY, SD.PLANNED_START_DATE, SD.PLANNED_COMP_DATE, SD.WORK_CENTER, SD.IS_DISPATCH, SD.EMPLOYEE_DESCRIPTION,
SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.DISPATCH_SEQ-1 BEFORE_SEQ, SD.DISPATCH_SEQ+1 AFTER_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE,
CASE WHEN IM.LOT_SIZE = 1 THEN N'是' ELSE N'否' END IS_MAJOR, CASE WHEN SD.TURN_OPERATION = 'true' THEN N'是' ELSE N'否' END TURN_OPERATION, SD.BLANKING_SIZE,
WR.WORK_CENTER RESOURCE_WORK_CENTER
FROM Z_SFC_DISPATCH SD
LEFT JOIN RESRCE RS ON SD.SITE = RS.SITE AND SD.RESRCE = RS.RESRCE
INNER JOIN SHOP_ORDER SO ON SO.SITE = SD.SITE AND SO.SHOP_ORDER = SD.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'
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 O ON O.SITE = SD.SITE AND O.OPERATION = SD.OPERATION AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SO.BOM_BO
INNER JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO
LEFT JOIN ITEM_T CPT ON CPT.ITEM_BO = CP.HANDLE AND CPT.LOCALE = 'zh'
LEFT JOIN WORK_CENTER_MEMBER WCM ON WCM.WORK_CENTER_OR_RESOURCE_GBO = 'ResourceBO:' || SD.SITE || ',' || SD.RESRCE
LEFT JOIN WORK_CENTER WR ON WR.HANDLE = WCM.WORK_CENTER_BO
WHERE SD.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND SD.OPERATION LIKE #{workCenter}||'%'
</if>
<if test="dispatchStatus != null and dispatchStatus != ''">
AND SD.DISPATCH_STATUS = #{dispatchStatus}
</if>
<if test="item != null and item != ''">
AND IM.ITEM = #{item}
</if>
<if test="workOrder != null and workOrder != ''">
AND C1.VALUE LIKE '%' ||#{workOrder}|| '%'
</if>
<if test="itemNumber != null and itemNumber != ''">
AND C2.VALUE LIKE '%' ||#{itemNumber}|| '%'
</if>
<if test="shopOrder != null and shopOrder != ''">
AND SD.SHOP_ORDER = #{shopOrder}
</if>
<if test="resourceType != null and resourceType != ''">
AND SD.RESOURCE_TYPE = #{resourceType}
</if>
<if test="resrce != null and resrce != ''">
AND SD.RESRCE = #{resrce}
</if>
<if test="operation != null and operation != ''">
AND SD.OPERATION = #{operation}
</if>
<if test="operationDescription != null and operationDescription != ''">
AND OT.DESCRIPTION = #{operationDescription}
</if>
<if test="sfc != null and sfc != ''">
AND SD.SFC = #{sfc}
</if>
<if test="turnOperation != null and turnOperation != ''">
AND SD.TURN_OPERATION = #{turnOperation}
</if>
<if test="component != null and component != ''">
AND CP.ITEM = #{component}
</if>
<if test="componentDescription != null and componentDescription != ''">
AND CPT.DESCRIPTION LIKE '%' || #{componentDescription} || '%'
</if>
<if test="isDispatch != null and isDispatch != ''">
AND SD.IS_DISPATCH = #{isDispatch}
</if>
<if test="blankingSize != null and blankingSize != ''">
AND SD.BLANKING_SIZE LIKE '%'||#{blankingSize}||'%'
</if>
<if test="startFromDate != null">
AND SO.PLANNED_START_DATE >= TO_DATE(#{startFromDate}, 'YYYY-MM-DD')
</if>
<if test="startToDate != null">
AND SO.PLANNED_START_DATE &lt;= TO_DATE(#{startToDate}|| '23:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="completeFromDate != null">
AND SO.PLANNED_COMP_DATE >= TO_DATE(#{completeFromDate}, 'YYYY-MM-DD')
</if>
<if test="completeToDate != null">
AND SO.PLANNED_COMP_DATE &lt;= TO_DATE(#{completeToDate}|| '23:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
) WIP
LEFT JOIN Z_SFC_DISPATCH V1 ON V1.SITE = WIP.SITE AND V1.SFC = WIP.SFC AND V1.DISPATCH_SEQ = WIP.BEFORE_SEQ
LEFT JOIN Z_SFC_DISPATCH V2 ON V2.SITE = WIP.SITE AND V2.SFC = WIP.SFC AND V2.DISPATCH_SEQ = WIP.AFTER_SEQ
) WIP
LEFT JOIN Z_SFC_DISPATCH V1 ON V1.SITE = WIP.SITE AND V1.SFC = WIP.SFC AND V1.DISPATCH_SEQ = WIP.BEFORE_SEQ
LEFT JOIN Z_SFC_DISPATCH V2 ON V2.SITE = WIP.SITE AND V2.SFC = WIP.SFC AND V2.DISPATCH_SEQ = WIP.AFTER_SEQ
<if test="isCompleted != null and isCompleted != ''">
WHERE WIP.IS_COMPLETED = #{isCompleted}
</if>
ORDER BY WIP.SHOP_ORDER, WIP.SFC, TO_NUMBER(WIP.DISPATCH_SEQ)
</select>

@ -1,18 +1,17 @@
package com.foreverwin.mesnac.meapi.controller;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.R;
import com.foreverwin.modular.core.util.FrontPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.web.bind.annotation.RequestMapping;
import com.foreverwin.mesnac.meapi.model.UserGroup;
import com.foreverwin.mesnac.meapi.service.UserGroupService;
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 com.foreverwin.mesnac.meapi.service.UserGroupService;
import com.foreverwin.mesnac.meapi.model.UserGroup;
import java.util.List;
import java.util.Map;
/**
*
@ -122,4 +121,27 @@ public class UserGroupController {
public R removeByIds(List<String> ids){
return R.ok(userGroupService.removeByIds(ids));
}
}
@ResponseBody
@PostMapping("/findAbnormalUserGroup")
public R findAbnormalUserGroup(@RequestBody Map<String,Object> param){
try{
return R.ok(userGroupService.findAbnormalUserGroup(param));
}catch (Exception e){
return R.failed("找寻用户组失败"+e.getMessage());
}
}
}

@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -33,4 +34,6 @@ public interface UserGroupMapper extends BaseMapper<UserGroup> {
List<UserGroup> findUserGroupListByUser(@Param("site")String site,@Param("user")String user);
List<UserGroup> findAbnormalUserGroup(@Param("site")String site, @Param("param")Map<String,Object> map);
}

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -29,4 +30,6 @@ public interface UserGroupService extends IService<UserGroup> {
List<UserGroup> getUserGroupListByUserBo(String userBo);
Integer getUserGroupByUser(String userBO,String userGroupBO);
List<UserGroup> findAbnormalUserGroup(Map<String,Object> param);
}

@ -1,17 +1,19 @@
package com.foreverwin.mesnac.meapi.service.impl;
import com.foreverwin.modular.core.util.FrontPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.meapi.model.UserGroup;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.mesnac.meapi.mapper.UserGroupMapper;
import com.foreverwin.mesnac.meapi.model.UserGroup;
import com.foreverwin.mesnac.meapi.service.UserGroupService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -52,4 +54,10 @@ public class UserGroupServiceImpl extends ServiceImpl<UserGroupMapper, UserGroup
return userGroupMapper.getUserGroupByUser(userBO,userGroupBO);
}
@Override
public List<UserGroup> findAbnormalUserGroup(Map<String, Object> param) {
String site = CommonMethods.getSite();
return userGroupMapper.findAbnormalUserGroup(site,param);
}
}

@ -390,5 +390,15 @@
WHERE U.USER_ID = #{user} AND U.SITE = #{site}
</select>
<select id="findAbnormalUserGroup" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"></include>
FROM USER_GROUP ug
INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = ug.HANDLE AND cf."ATTRIBUTE" = 'TYPE'
<where>
<if test="param.type != null and param.type != ''">
cf.VALUE LIKE '%${param.type}%'
</if>
</where>
</select>
</mapper>

@ -220,10 +220,14 @@ public class PodTemplateServiceImpl implements PodTemplateService {
QueryWrapper<InspectionTask> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(InspectionTask.CATEGORY, Constants.INSPECTION_TYPE_P);
queryWrapper.eq(InspectionTask.SFC, sfc);
queryWrapper.ne(InspectionTask.RESULT, Constants.RSESULT_OK);
queryWrapper.orderByDesc(InspectionTask.CREATED_DATE_TIME);
List<InspectionTask> list = inspectionTaskService.list(queryWrapper);
if (!list.isEmpty()) {
throw new BaseException("请完成专检检验任务");
InspectionTask inspectionTask = list.get(0);
String result = inspectionTask.getResult();
if (!inspectionTask.getStatus().equals(Constants.INSPECTION_TASK_STATUS_COMPLETE)||StringUtil.isBlank(result)||!result.equals(Constants.RSESULT_OK)){
throw new BaseException("请完成专检检验任务");
}
}
try {
sfcCrossService.startAction(site, currentRevisionRef.getHandle(), resrce, sfcServiceById.getHandle(), qty);
@ -246,6 +250,10 @@ public class PodTemplateServiceImpl implements PodTemplateService {
String dispatchNo = sfcDto.getDispatchNo();
Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfc));
String status = StringUtil.trimHandle(sfcServiceById.getStatusBo());
if (status.equals("404")) {
throw new BaseException("产品条码" + sfc + "已暂停");
}
BigDecimal qty = new BigDecimal(sfcServiceById.getQty().toString());
//是否有自检检验项目
List<InspectionItemDetail> inspectionItemDetails = inspectionItemService.selectQualityInspection(sfc, operation, stepId, Constants.INSPECTION_TYPE_Z);
@ -289,7 +297,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
inspectionTaskService.createTask(paramMap);
} else {
paramMap.put("CATEGORY", Constants.INSPECTION_TYPE_P);
inspectionTaskService.createCompleteTask(paramMap);
inspectionTaskService.createNewTask(paramMap);
}
//首件创建
inspectionItemDetails = inspectionItemService.selectQualityInspection(sfc, operation, stepId, Constants.INSPECTION_TYPE_S);

@ -1,7 +1,11 @@
package com.foreverwin.mesnac.production.service.impl;
import com.foreverwin.mesnac.common.constant.CustomFieldConstant;
import com.foreverwin.mesnac.common.enums.HandleEnum;
import com.foreverwin.mesnac.common.util.StringUtil;
import com.foreverwin.mesnac.meapi.dto.SfcDto;
import com.foreverwin.mesnac.meapi.service.CustomFieldsService;
import com.foreverwin.mesnac.production.mapper.SfcCrossMapper;
import com.foreverwin.mesnac.production.service.SfcCrossService;
import com.foreverwin.modular.core.exception.BaseException;
@ -28,6 +32,8 @@ import java.util.List;
public class SfcCrossServiceImpl implements SfcCrossService {
@Autowired
private SfcCrossMapper sfcCrossMapper;
@Autowired
private CustomFieldsService customFieldsService;
@Override
public void startAction(String site, String operationRef,
String resource, String sfcRef, BigDecimal qty) throws Exception {
@ -80,10 +86,15 @@ public class SfcCrossServiceImpl implements SfcCrossService {
public void resourceCheck(String resrce) {
LocalDateTime now = LocalDateTime.now();
String site = CommonMethods.getSite();
LocalDateTime dateTime = LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), 0, 0, 0);
Integer integer = sfcCrossMapper.resourceCheck(site,resrce, dateTime);
if (integer<1){
throw new BaseException("当前设备点检未完成");
String handle = HandleEnum.RESOURCE.getHandle(site, resrce);
String isSpot = customFieldsService.getCustomFieldsValue(handle, CustomFieldConstant.RESRCE_CUSTOM_FIELD_IS_SPOT);
if (StringUtil.isBlank(isSpot)||!isSpot.equals("N")){
LocalDateTime dateTime = LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), 0, 0, 0);
Integer integer = sfcCrossMapper.resourceCheck(site,resrce, dateTime);
if (integer<1){
throw new BaseException("当前设备点检未完成");
}
}
}
}

@ -3,6 +3,8 @@ package com.foreverwin.mesnac.production.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
import com.foreverwin.mesnac.common.enums.DispatchStatusEnum;
import com.foreverwin.mesnac.common.enums.HandleEnum;
import com.foreverwin.mesnac.common.service.SfcDispatchCommonService;
import com.foreverwin.mesnac.common.util.ExceptionUtil;
@ -18,7 +20,6 @@ import com.foreverwin.mesnac.production.dto.SplitSfcDto;
import com.foreverwin.mesnac.production.mapper.SfcCrossMapper;
import com.foreverwin.mesnac.production.mapper.SplitSfcMapper;
import com.foreverwin.mesnac.production.model.SplitSfc;
import com.foreverwin.mesnac.production.model.StepOperation;
import com.foreverwin.mesnac.production.service.SplitSfcService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.meext.MEServices;
@ -182,6 +183,14 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
if (sfcData==null){
throw new BaseException("未找到产品条码信息");
}
SfcDispatchDto sfcDispatchDto = new SfcDispatchDto();
sfcDispatchDto.setSite(site);
sfcDispatchDto.setSfc(sfc);
sfcDispatchDto.setStepId(sfcData.getStepId());
SfcDispatchDto sfcDispatchBySfc = sfcDispatchCommonService.findSfcDispatchBySfc(sfcDispatchDto);
if (sfcDispatchBySfc.equals(DispatchStatusEnum.CANCEL.getCode())){
throw new BaseException("产品已取消派工");
}
//查询质量异常记录数量 处置工艺路线及不良代码
SplitSfcDto splitSfcDto=splitSfcMapper.getAbnormalQty(site,sfc,operation, abnormalNo);
String routerBo = splitSfcDto.getRouterBo();
@ -224,11 +233,10 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
stepIdentifier.setStepId(sfcData.getStepId());
stepIdentifier.setOperationId(sfcData.getOperation());
productionContext.setStepIdentifier(stepIdentifier);
List<StepOperation> resourceBySfc = sfcCrossMapper.getResourceBySfc(site, sfc);
if (resourceBySfc.isEmpty()){
throw new BaseException("产品不在工作中");
if (StringUtil.isBlank(sfcDispatchBySfc.getResrce())){
throw new BaseException("未派工到设备");
}
productionContext.setResourceRef(resourceBySfc.get(0).getResourceBo());
productionContext.setResourceRef(HandleEnum.RESOURCE.getHandle(site,sfcDispatchBySfc.getResrce()));
createNCRequest.setProdCtx(productionContext);
createNCRequest.setNcCodeRef(HandleEnum.NC_CODE.getHandle(site,splitNcCode[0]));
ncProductionService.createNC(createNCRequest);

@ -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;
}
@ -117,7 +122,7 @@ 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+"有检验项目,不允许执行合格操作");
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(newTaskNo);
newInspectionTask.setStatus(Constants.INSPECTION_TASK_STATUS_NEW);
newInspectionTask.setResult(null);
newInspectionTask.setComments(null);
inspectionTaskService.save(newInspectionTask);
}
}

@ -39,14 +39,17 @@
<if test="workCenter != null and workCenter != ''">
AND B.WORK_CENTER = #{workCenter}
</if>
<choose>
<when test="category != null and category != ''">
AND B.CATEGORY = #{category}
</when>
<otherwise>
AND (B.CATEGORY = 'S' OR B.CATEGORY = 'P')
</otherwise>
</choose>
<choose>
<when test="category != null and category != ''">
AND B.CATEGORY = #{category}
</when>
<otherwise>
AND (B.CATEGORY = 'S' OR B.CATEGORY = 'P')
</otherwise>
</choose>
<if test="taskNo != null and taskNo != ''">
AND B.TASK_NO =#{taskNo}
</if>
<if test="status != null and status != ''">
AND B.STATUS = #{status}
</if>

Loading…
Cancel
Save