跨车间转运、质量异常待办、微信消息通知

master
yangwl 3 years ago
parent d59e13b2e1
commit 55deeefeed

@ -323,12 +323,13 @@ public class AbnormalBillController {
abnormalBill.setUserIsCon("true");
abnormalBills.add(abnormalBill);
}
flag=abnormalBillService.updateBatchById(abnormalBills);
flag=abnormalBillService.deviceRepairComplete(abnormalBills);
} catch (Exception e) {
return R.failed(e.getMessage());
}
if (flag) {
message.insert(0, "确认维修成功");
return R.ok(message.toString());
} else {
message.insert(0, "确认维修失败:");

@ -141,7 +141,5 @@ public class AbnormalPlanController {
}catch (Exception e){
return R.failed(e.getMessage().trim());
}
}
}

@ -2,6 +2,8 @@ package com.foreverwin.mesnac.anomaly.dto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import java.time.LocalDateTime;
/**
* @Description
* @Author zhaojiawei
@ -194,6 +196,46 @@ public class AbnormalBillDisposeDto extends AbnormalBillDispose {
*/
private String dutyType;
/**
*
*/
private LocalDateTime createdDateTime;
// /**
// * 责任划分时间
// */
//
// private LocalDateTime dutyDatetime;
//
// /**
// * 责任划分填报人员
// */
//
// private String dutyUser;
//
// /**
// * 解决方案填报时间
// */
//
// private LocalDateTime resolveDatetime;
//
// /**
// * 解决方案填报人员
// */
// private String resolveUser;
//
// /**
// * 闭环关闭填报时间
// */
// private LocalDateTime closedDatetime;
//
// /**
// * 闭环关闭填报人
// */
// private String closedUser;
/**
*
* @return
@ -210,6 +252,69 @@ public class AbnormalBillDisposeDto extends AbnormalBillDispose {
private String stepId;
public LocalDateTime getCreatedDateTime() {
return createdDateTime;
}
public void setCreatedDateTime(LocalDateTime createdDateTime) {
this.createdDateTime = createdDateTime;
}
//
// public LocalDateTime getDutyDatetime() {
// return dutyDatetime;
// }
//
// public void setDutyDatetime(LocalDateTime dutyDatetime) {
// this.dutyDatetime = dutyDatetime;
// }
//
// @Override
// public String getDutyUser() {
// return dutyUser;
// }
//
// @Override
// public void setDutyUser(String dutyUser) {
// this.dutyUser = dutyUser;
// }
//
// public LocalDateTime getResolveDatetime() {
// return resolveDatetime;
// }
//
// public void setResolveDatetime(LocalDateTime resolveDatetime) {
// this.resolveDatetime = resolveDatetime;
// }
//
// @Override
// public String getResolveUser() {
// return resolveUser;
// }
//
// @Override
// public void setResolveUser(String resolveUser) {
// this.resolveUser = resolveUser;
// }
//
// public LocalDateTime getClosedDatetime() {
// return closedDatetime;
// }
//
// public void setClosedDatetime(LocalDateTime closedDatetime) {
// this.closedDatetime = closedDatetime;
// }
//
// @Override
// public String getClosedUser() {
// return closedUser;
// }
//
// @Override
// public void setClosedUser(String closedUser) {
// this.closedUser = closedUser;
// }
public String getAbnormalNo() {
return abnormalNo;
}

@ -28,6 +28,10 @@ public interface AbnormalBillMapper extends BaseMapper<AbnormalBill> {
List<AbnormalBillDto> backLog(@Param("abnormalBill")AbnormalBillDto abnormalBillDto, @Param("language")String language,
@Param("userGroupList")List<UserGroup> userGroupList);
List<AbnormalBillDto> backLogByDeviceUser(@Param("abnormalBill")AbnormalBillDto abnormalBillDto, @Param("language")String language);
/**
*
* @param abnormalBill
@ -52,4 +56,5 @@ public interface AbnormalBillMapper extends BaseMapper<AbnormalBill> {
List<ScrapDto> findScrapDtoList(String site);
Map<String, String> findReplaceMessageResrce(@Param("abnormalBill")AbnormalBill abnormalBill);
}

@ -11,6 +11,7 @@ import com.foreverwin.mesnac.common.model.Message;
import com.foreverwin.mesnac.meapi.dto.SfcDto;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -144,6 +145,8 @@ public interface AbnormalBillService extends IService<AbnormalBill> {
*/
boolean anomalyCreatedAndSendMessage(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose);
/**
*
*/
@ -178,4 +181,6 @@ public interface AbnormalBillService extends IService<AbnormalBill> {
*/
void saveDutyMessageAndResolveMessageByNodeIsResponse(Message paramMessage,String userGroup);
boolean deviceRepairComplete( List<AbnormalBill> abnormalBills);
}

@ -270,17 +270,17 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
/**
* mesbpm
*/
if (StringUtil.isBlank(abnormalBill.getBpmSubmit())){
abnormalBill.setBpmSubmit("false");
YunBpmApiRes bpmApiRes = yunBpmService.saveQualitySystem(abnormalBill, abnormalBillDispose,
StringUtils.extract(ncGroup.toString(), "[", "]"),
StringUtils.extract(ncGroupAndNcCodes.toString(), "[", "]"));
if(!bpmApiRes.getErrCode().equals(0)){
throw new BaseException("MES提报给质量BPM系统失败");
}
String workflowInstanceId = JSON.parseObject(String.valueOf(bpmApiRes.getData())).getString("workflowInstanceId");
abnormalBill.setBpmFlowId(workflowInstanceId);
}
// if (StringUtil.isBlank(abnormalBill.getBpmSubmit())){
// abnormalBill.setBpmSubmit("false");
// YunBpmApiRes bpmApiRes = yunBpmService.saveQualitySystem(abnormalBill, abnormalBillDispose,
// StringUtils.extract(ncGroup.toString(), "[", "]"),
// StringUtils.extract(ncGroupAndNcCodes.toString(), "[", "]"));
// if(!bpmApiRes.getErrCode().equals(0)){
// throw new BaseException("MES提报给质量BPM系统失败");
// }
// String workflowInstanceId = JSON.parseObject(String.valueOf(bpmApiRes.getData())).getString("workflowInstanceId");
// abnormalBill.setBpmFlowId(workflowInstanceId);
// }
ArrayList<AbnormalNcCode> abnormalNcCodes = new ArrayList<>();
for(int i = 0; i < ncGroup.size(); i ++){
@ -324,7 +324,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
abnormalBillDisposeService.saveOrUpdate(abnormalBillDispose);
//发送消息
if(Constants.NEW.equals(abnormalBill.getStatus()) && !abnormalBill.getReportSendUserGroup().equals("BPM")){
if(Constants.NEW.equals(abnormalBill.getStatus())){
this.anomalyCreatedAndSendMessage(abnormalBill,null);
}
@ -474,10 +474,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
public List<AbnormalBillDto> backLogByDeviceUser(AbnormalBillDto abnormalBillDto) {
String user = CommonMethods.getUser();
String site = CommonMethods.getSite();
List<UserGroup> userGroupList = userGroupMapper.findUserGroupListByUser(site, user);
abnormalBillDto.setCreatedUser(user);
String language = LocaleContextHolder.getLocale().getLanguage();
return abnormalBillMapper.backLog(abnormalBillDto, language,userGroupList);
return abnormalBillMapper.backLogByDeviceUser(abnormalBillDto, language);
}
@Override
@ -1253,7 +1252,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
//给设备处发企业微信消息
//给生产组
List<NwaUser> nwaUsers_sc = nwaUserService.checkUserGroup(site,"ZHANGHAN");
List<NwaUser> nwaUsers_sc = nwaUserService.checkUserGroup(site,"SBYCSB-SHENGCHAN");
if(nwaUsers_sc != null && nwaUsers_sc.size() <= 0){
throw new BaseException("消息发送失败,生产用户组下面没有用户");
@ -1264,6 +1263,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
List<String> customFieldByUserId = usrMapper.findCustomFieldByUserId(site, nwaUsers);
//添加异常发起人
customFieldByUserId.add(abnormalBill.getCreatedUser());
List<String> customFieldByUserId_sc = usrMapper.findCustomFieldByUserId(site, nwaUsers_sc);
@ -1285,7 +1287,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
StringBuilder sendUsers_sc = new StringBuilder();
for (int i = 0; i < Objects.requireNonNull(customFieldByUserId_sc).size(); i++) {
if(i == (customFieldByUserId.size() - 1)){
if(i == (customFieldByUserId_sc.size() - 1)){
sendUsers_sc.append(customFieldByUserId_sc.get(i));
}else{
sendUsers_sc.append(customFieldByUserId_sc.get(i)).append("|");
@ -1630,6 +1632,21 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
messageService.saveOrUpdateBatch(messages);
}
@Override
public boolean deviceRepairComplete( List<AbnormalBill> abnormalBills) {
boolean flag=this.updateBatchById(abnormalBills);
if (flag){
//发送维修完成的消息给相关人员
for (AbnormalBill abnormalBill : abnormalBills){
abnormalBill.setType("S");
abnormalBill.setReportSendUserGroup("SBYC-REPAIRCOMPLETE");
this.sendMessageToDeviceRepairComplete(abnormalBill);
}
}
return flag;
}
@Override
public Map<String, String> jgProductionIsScrap(String abnormalNo, String site, String sfc) {
//查询该sfc在质量异常异常方案是否是报废,如果是则大于1
@ -1763,4 +1780,56 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
inspectionTaskService.save(newInspectionTask);
}
/**
*
*/
public boolean sendMessageToDeviceRepairComplete(AbnormalBill abnormalBill){
String site = CommonMethods.getSite();
String user = CommonMethods.getUser();
LocalDateTime now = LocalDateTime.now();
Message DeviceRepairCompleteMessage = new Message();
//发送消息的主键
//找到对应的消息类型
MessageType thisType;
try{
thisType = messageTypeMapper.findMessageTypeByUserGroup(site, abnormalBill.getReportSendUserGroup());
}catch (Exception e){
throw new BaseException("根据发送的用户组找到"+"找到多个对应的消息类型,请检查。"+e.getMessage());
}
if(thisType == null){
throw new BaseException("根据发送的用户组"+"找不到对应的消息类型,请维护。");
}
String messageType = thisType.getMessageType();
//格式化消息
String message = this.formatMessage(abnormalBill,messageType,site);
//得到消息触发的时间
DeviceRepairCompleteMessage.setResponseDateTime(now);
//得到要发送的消息
DeviceRepairCompleteMessage.setContent(message);
//给生产组
List<NwaUser> nwaUsers_sc = nwaUserService.checkUserGroup(site,abnormalBill.getReportSendUserGroup());
if(nwaUsers_sc != null && nwaUsers_sc.size() <= 0){
throw new BaseException("消息发送失败,生产用户组下面没有用户");
}
List<String> customFieldByUserId_sc = usrMapper.findCustomFieldByUserId(site, nwaUsers_sc);
if(customFieldByUserId_sc != null && customFieldByUserId_sc.size() <= 0){
throw new BaseException("消息发送失败,生产用户组下面的用户的自定义数据没有维护");
}
StringBuilder sendUsers_sc = new StringBuilder();
for (int i = 0; i < Objects.requireNonNull(customFieldByUserId_sc).size(); i++) {
if(i == (customFieldByUserId_sc.size() - 1)){
sendUsers_sc.append(customFieldByUserId_sc.get(i));
}else{
sendUsers_sc.append(customFieldByUserId_sc.get(i)).append("|");
}
}
activeMQUtil.wechatSendMessage(sendUsers_sc.toString(),DeviceRepairCompleteMessage.getContent());
return true;
}
}

@ -269,7 +269,7 @@ public class AbnormalPlanServiceImpl extends ServiceImpl<AbnormalPlanMapper, Abn
shopOrder.setQtyOrdered(new Double(abnormalBill.getNcQty()));
shopOrder.setQtyToBuild(new Double(abnormalBill.getNcQty()));
try {
CreateRepairShopOrder(site,shopOrder);
// CreateRepairShopOrder(site,shopOrder);
}catch (Exception e){
throw new BaseException(e.getMessage().trim());
}
@ -285,11 +285,10 @@ public class AbnormalPlanServiceImpl extends ServiceImpl<AbnormalPlanMapper, Abn
abnormalPlans.get(i).setSendUserGroup(userGroup);
this.sendMessage(abnormalBills.get(i),abnormalPlans.get(i));
}
abnormalPlans.get(i).setSendUserGroup(sendUserGroup);
}
//更新
this.saveOrUpdateBatch(abnormalPlans);
}

@ -80,6 +80,9 @@
<result column="ROUTER_DESCRIPTION" property="routerDescription"/>
<result column="PRODUCT_CATEGORY" property="productCategory"/>
<result column="STEP_ID" property="stepId"/>
<result column="CREATED_DATE_TIME" property="createdDateTime" />
<result column="CREATED_USER" property="createdUser" />
</resultMap>
@ -728,7 +731,15 @@
ZABD.ROUTER_BO ROUTER_BO,ZAB.OPERATION OPERATION,I.HANDLE ITEM_BO,ZAB.REPORT_SEND_USER_GROUP REPORT_SEND_USER_GROUP,
ZAB.CORRECTION CORRECTION,ZAB.PROGRAM PROGRAM,WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,ZAB.SHUT_DOWN SHUT_DOWN,
RS.DESCRIPTION RESRCE_DESCRIPTION,OT.DESCRIPTION OPERATION_DESCRIPTION,R.DESCRIPTION ROUTER_DESCRIPTION,
ZAB.PRODUCT_CATEGORY PRODUCT_CATEGORY,ZAB.STEP_ID STEP_ID
ZAB.PRODUCT_CATEGORY PRODUCT_CATEGORY,ZAB.STEP_ID STEP_ID,ZAB.CREATED_DATE_TIME,
ZABD.DUTY_DATE_TIME,
ZABD.RESOLVE_DATE_TIME,
ZABD.CLOSED_DATE_TIME,
NWA3.FULL_NAME DUTY_USER,
NWA4.FULL_NAME CLOSED_USER,
NWA5.FULL_NAME RESOLVE_USER
FROM Z_ABNORMAL_BILL ZAB
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE ZABD ON ZAB.HANDLE = ZABD.ABNORMAL_BILL_BO
LEFT JOIN ITEM I ON I.HANDLE = ZAB.ITEM_BO
@ -745,6 +756,9 @@
LEFT JOIN WORK_CENTER_T WCT ON ('WorkCenterBO:' || ZAB.SITE || ',' || ZAB.WORK_CENTER) = WCT.WORK_CENTER_BO AND WCT.LOCALE = #{locale}
LEFT JOIN Z_NWA_USER NWA ON NWA.USER_NAME = ZAB.PB_USER AND NWA.SITE = ZAB.SITE
LEFT JOIN Z_NWA_USER NWA2 ON NWA2.USER_NAME = ZAB.INSPECTOR AND NWA2.SITE = ZAB.SITE
LEFT JOIN Z_NWA_USER NWA3 ON NWA3.USER_NAME = ZABD.DUTY_USER AND NWA3.SITE = ZABD.SITE
LEFT JOIN Z_NWA_USER NWA4 ON NWA4.USER_NAME = ZABD.CLOSED_USER AND NWA4.SITE = ZABD.SITE
LEFT JOIN Z_NWA_USER NWA5 ON NWA5.USER_NAME = ZABD.RESOLVE_USER AND NWA5.SITE = ZABD.SITE
LEFT JOIN NC_GROUP NG ON NG.NC_GROUP = ZANC.NC_CODE_GROUP AND NG.SITE = ZAB.SITE
LEFT JOIN ROUTER R ON SUBSTR(R.HANDLE,1,INSTR(R.HANDLE,',',-1)-1) = SUBSTR(ZABD.ROUTER_BO,1,INSTR(ZABD.ROUTER_BO,',',-1)-1) AND R.CURRENT_REVISION = 'true'
<where>
@ -772,7 +786,16 @@
R.ROUTER ,ZABD.RESOLVE_SHOP_ORDER ,ZABD.RESOLVE_REMARK ,ZABD.RESOLVE_SEND_USER_GROUP ,
ZABD.ABNORMAL_REASON ,ZABD.BEFORE_MEASURE ,"MAP".VALUE,ZABD.ROUTER_BO,ZAB.OPERATION,I.HANDLE,
ZAB.REPORT_SEND_USER_GROUP,ZAB.CORRECTION,ZAB.PROGRAM,WCT.DESCRIPTION,ZAB.SHUT_DOWN,RS.DESCRIPTION,
OT.DESCRIPTION,R.DESCRIPTION, ZAB.STEP_ID
OT.DESCRIPTION,R.DESCRIPTION, ZAB.STEP_ID, ZAB.CREATED_DATE_TIME,
ZABD.DUTY_DATE_TIME,
ZABD.DUTY_USER,
ZABD.RESOLVE_DATE_TIME,
ZABD.RESOLVE_USER,
ZABD.CLOSED_DATE_TIME,
NWA3.FULL_NAME,
NWA4.FULL_NAME,
NWA5.FULL_NAME
</select>

@ -1343,7 +1343,9 @@
ELSE ''
END METHOD,
zab.ABNORMAL_NO,
zab.CANCEL_REASON CANCEL_REASON
zab.CANCEL_REASON CANCEL_REASON,
zab.SFC,
zab.PB_DESCRIPTION
FROM Z_ABNORMAL_BILL zab
INNER JOIN ITEM i ON i.HANDLE = zab.ITEM_BO
LEFT JOIN RESRCE r ON r.RESRCE = zab.RESRCE AND r.SITE = zab.SITE
@ -1370,16 +1372,17 @@
</where>
GROUP BY wct.DESCRIPTION ,so.SHOP_ORDER ,it.DESCRIPTION,r.DESCRIPTION,r2.DESCRIPTION,
zab.WORK_ORDER,zab.ITEM_NUMBER,zabd.ABNORMAL_METHOD,zab.ABNORMAL_NO,item.VALUE,workOrder.VALUE,
zab.CANCEL_REASON
zab.CANCEL_REASON,zab.SFC,zab.PB_DESCRIPTION
</select>
<select id="findReplaceMessageResrce" resultType="java.util.HashMap">
SELECT wct.DESCRIPTION WORKCENTER,r.DESCRIPTION "RESOURCE",zab.PB_DESCRIPTION
SELECT wct.DESCRIPTION WORKCENTER,r.DESCRIPTION "RESOURCE",zab.PB_DESCRIPTION,ZNU.FULL_NAME FULLNAME,r.RESRCE
FROM Z_ABNORMAL_BILL zab
LEFT JOIN RESRCE r
ON r.RESRCE = zab.RESRCE AND r.SITE = zab.SITE
LEFT JOIN WORK_CENTER wc
ON wc.WORK_CENTER = zab.WORK_CENTER AND wc.SITE = zab.SITE
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME=zab.CREATED_USER
LEFT JOIN WORK_CENTER_T wct
ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
<where>
@ -1393,7 +1396,93 @@
</if>
</if>
</where>
GROUP BY wct.DESCRIPTION ,r.DESCRIPTION,zab.PB_DESCRIPTION
GROUP BY wct.DESCRIPTION ,r.DESCRIPTION,zab.PB_DESCRIPTION,ZNU.FULL_NAME,r.RESRCE
</select>
<select id="backLogByDeviceUser" resultType="com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto">
SELECT ROW_NUMBER() OVER(ORDER BY ZAB.ABNORMAL_NO ASC) SEQ,ZAB.ABNORMAL_NO ABNORMAL_NO,
CASE WHEN ZAB.CORRECTION = 'true' AND ZAB.PROGRAM = 'true' AND ZAB.STATUS != 'G' THEN '纠防确认,方案确认'
ELSE ZAB.STATUS
END STATUS ,
IT.DESCRIPTION ITEM_DESCRIPTION, ZAB.CREATED_DATE_TIME CREATED_DATE_TIME,
ZAB.RESPONSE_DATE_TIME RESPONSE_DATE_TIME,
ZNU.FULL_NAME CREATED_USER,
ZAB.NC_CODE NC_CODE,ZAB.PB_DESCRIPTION PB_DESCRIPTION,
ZAB.USER_CON_TIME,ZAB.USER_IS_CON,
LISTAGG(NCT.DESCRIPTION , ',') WITHIN GROUP(ORDER BY ZAB.ABNORMAL_NO) NC_CODE_DESCRIPTION
FROM Z_ABNORMAL_BILL ZAB
LEFT JOIN Z_ABNORMAL_BILL_DISPOSE ZABD ON ZABD.ABNORMAL_BILL_BO = ZAB.HANDLE
LEFT JOIN ITEM I ON ZAB.ITEM_BO = I.HANDLE
LEFT JOIN ITEM_T IT ON I.HANDLE = IT.ITEM_BO AND IT.LOCALE = #{language}
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = ZAB.CREATED_USER AND ZNU.SITE = ZAB.SITE
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZAB.SHOP_ORDER AND SO.SITE = ZAB.SITE
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN Z_ABNORMAL_NC_CODE ZANC ON ZANC.ABNORMAL_BILL_BO = ZAB.HANDLE
LEFT JOIN NC_CODE_T NCT ON NCT.NC_CODE_BO = 'NCCodeBO:'|| ZAB.SITE || ',' || ZANC.NC_CODE AND NCT.LOCALE = #{language}
LEFT JOIN RESRCE R ON R.RESRCE = ZAB.RESRCE AND R.SITE = ZAB.SITE
LEFT JOIN CUSTOM_FIELDS CFA ON CFA.HANDLE = R.HANDLE AND CFA."ATTRIBUTE" = 'CHECK_USR'
<where>
<if test="abnormalBill != null">
<if test="abnormalBill.site != null and abnormalBill.site != ''">
zab.SITE = #{abnormalBill.site}
</if>
<if test="abnormalBill.checkUsr != null and abnormalBill.checkUsr != ''">
AND CFA.VALUE = #{abnormalBill.checkUsr}
</if>
<if test="abnormalBill.resrce != null and abnormalBill.resrce != ''">
AND zab.RESRCE = #{abnormalBill.resrce}
</if>
<if test="abnormalBill.shopOrder != null and abnormalBill.shopOrder != ''">
AND zab.SHOP_ORDER = #{abnormalBill.shopOrder}
</if>
<if test="abnormalBill.abnormalNo != null and abnormalBill.abnormalNo != ''">
AND zab.ABNORMAL_NO = #{abnormalBill.abnormalNo}
</if>
<if test="abnormalBill.status != null and abnormalBill.status != '' and abnormalBill.status != 'COMP'.toString()">
AND zab.STATUS = #{abnormalBill.status}
</if>
<if test="abnormalBill.status == 'COMP'.toString()">
AND zab.PROGRAM = 'true' AND zab.CORRECTION = 'true' AND zab.status != 'G'
</if>
<if test="abnormalBill.status == '' and abnormalBill.type == 'Z'.toString()">
AND zab.STATUS != 'Q' AND zab.STATUS != 'G'
</if>
<if test="abnormalBill.startDateTime != null ">
AND zab.CREATED_DATE_TIME &gt;= #{abnormalBill.startDateTime}
</if>
<if test="abnormalBill.endDateTime != null">
AND zab.CREATED_DATE_TIME &lt;= #{abnormalBill.endDateTime}
</if>
<if test="abnormalBill.workCenter != null and abnormalBill.workCenter != ''">
AND zab.WORK_CENTER = #{abnormalBill.workCenter}
</if>
<if test="abnormalBill.type != null and abnormalBill.type != ''">
AND zab.TYPE = #{abnormalBill.type}
</if>
<if test="abnormalBill.reportFrom != null and abnormalBill.reportFrom != ''">
AND zab.REPORT_FROM = #{abnormalBill.reportFrom}
</if>
<if test="abnormalBill.workOrder != null and abnormalBill.workOrder != ''">
AND (CASE WHEN CF.VALUE IS NOT NULL THEN CF.VALUE ELSE zab.WORK_ORDER END ) = #{abnormalBill.workOrder}
</if>
<if test="abnormalBill.productionCategory != null and abnormalBill.productionCategory != ''">
AND zab.PRODUCT_CATEGORY LIKE '%${abnormalBill.productionCategory}'
</if>
<if test="abnormalBill.productionCategory != null and abnormalBill.productionCategory != ''">
AND zab.PRODUCT_CATEGORY LIKE '%${abnormalBill.productionCategory}'
</if>
<if test="abnormalBill.createdUser != null and abnormalBill.createdUser != ''">
AND zab.CREATED_USER = #{abnormalBill.createdUser}
</if>
</if>
</where>
GROUP BY zab.ABNORMAL_NO,it.DESCRIPTION,zab.CREATED_DATE_TIME,zab.RESPONSE_DATE_TIME,
ZNU.FULL_NAME,zab.NC_CODE,zab.PB_DESCRIPTION,ZAB.CORRECTION,ZAB.PROGRAM,ZAB.STATUS,ZAB.USER_CON_TIME,ZAB.USER_IS_CON
ORDER BY zab.CREATED_DATE_TIME DESC
</select>
</mapper>

@ -595,6 +595,7 @@
AND ZAP.CLOSED_DATE_TIME &lt;= #{abnormalPlanDto.endDateTime}
</if>
</where>
ORDER BY ZAP.CREATED_DATE_TIME DESC
</select>
</mapper>

@ -891,6 +891,10 @@
<if test="completeToDate != null">
AND SD.PLANNED_COMP_DATE &lt;= TO_DATE(#{completeToDate}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="dispatchSeq != null">
AND SD.DISPATCH_SEQ = #{dispatchSeq}
</if>
GROUP BY SD.HANDLE, SD.SITE, SD.SHOP_ORDER, SD.DISPATCH_NO, SD.ROUTER_BO, C2.VALUE, C1.VALUE, IM.HANDLE,
IM.ITEM, IT.DESCRIPTION, SD.SFC, SD.DISPATCH_STATUS,SD.DRAWINGS_REVISION,
SD.STEP_ID, SD.OPERATION, OT.DESCRIPTION, SD.RESOURCE_TYPE, SD.RESRCE, SD.EMPLOYEE, SD.EMPLOYEE,
@ -970,7 +974,18 @@
SELECT
*
FROM
( SELECT STEP_ID FROM Z_SFC_DISPATCH WHERE SFC = '202110200000' AND ACTUAL_COMPLETE_DATE IS NOT NULL ORDER BY ACTUAL_COMPLETE_DATE DESC )
(
SELECT
ZIT.STEP_ID
FROM
Z_LOGISTICS_TURNOVER ZLT
LEFT JOIN Z_INSPECTION_TASK ZIT ON ZLT.OTHER3 = ZIT.HANDLE
WHERE
ZLT.STATUS = 'NEW'
AND ZIT.SFC = #{sfc}
ORDER BY
ZIT.CREATED_DATE_TIME DESC
)
WHERE
ROWNUM = 1
</select>

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.foreverwin.modular:modular-core:1.0-SNAPSHOT.standlone-hana" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.22.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.22.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.43" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat:tomcat-annotations-api:8.5.43" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.43" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.43" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.6.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.11.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.7" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.26" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-test:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-test:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
<orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.assertj:assertj-core:2.6.0" level="project" />
<orderEntry type="library" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" name="Maven: org.skyscreamer:jsonassert:1.4.0" level="project" />
<orderEntry type="library" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-test:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.5.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.25.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.22.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.14" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.1.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.0" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.5.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.48" level="project" />
<orderEntry type="library" name="Maven: ojdbc6:ojdbc6:11.2.0.4" level="project" />
<orderEntry type="library" name="Maven: com.sap:ngdbc:2.5.52" level="project" />
<orderEntry type="library" name="Maven: com.sap:sapdbc:7.9.09" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-legacy:1.1.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.0.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-typehandlers-jsr310:1.0.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.11" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.12" level="project" />
<orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.1.12" level="project" />
<orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.1.12" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.12" level="project" />
<orderEntry type="library" name="Maven: com.sap:sapjco:NTAMD64-3.0.6" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.4.19.v20190610" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.4.19.v20190610" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.4.19.v20190610" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.4.19.v20190610" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.4.19.v20190610" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-websocket:8.2.0.v20160908" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.73" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec:1.0.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.foreverwin.modular:modular-melib:15.4.0.2.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.activity.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.annotation.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.appconfig.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.backgroundprocess.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.browse.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.certification.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.collaboration.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.common.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.container.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.customdata.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.datacollection.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.dataformat.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.datatransfer.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.datatype.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.demand.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.document.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.extension.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.framework.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.framework.api-internal:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.framework.globalization:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.integration.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.integration.cncdnc.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.integration.erp.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.inventory.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.labor.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.legacy.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.messaging.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.nonconformance.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.numbering.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.plant.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.productdefinition.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.production.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.productiondate.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.reasoncode.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.reporting.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.resourcetracking.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.sampling.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.schedulingstandards.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.script.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.security.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.setpoint.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.status.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.timeelement.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.tooling.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.uom.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.user.api:154.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:service-core.api:3.4.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:common-libs:3.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:sap-usermanagement-api:1.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sap:me.common.domain:154.0.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.7" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.7" level="project" />
</component>
</module>

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.foreverwin.mesnac.meapi.dto.LogisticsDto;
import com.foreverwin.mesnac.meapi.enums.HandleEnum;
import com.foreverwin.mesnac.meapi.model.Location;
import com.foreverwin.mesnac.meapi.model.LogisticsBill;
import com.foreverwin.mesnac.meapi.model.StoreSfcInfo;
import com.foreverwin.mesnac.meapi.model.UserGroup;
@ -87,7 +88,7 @@ public class LogisticsTurnoverController {
.like(LogisticsTurnover::getHandle, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getSfcDispatchBo, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getStatus, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getUser, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getuserId, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getUserName, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getOther1, frontPage.getGlobalQuery())
.or().like(LogisticsTurnover::getOther2, frontPage.getGlobalQuery())
@ -224,34 +225,25 @@ public class LogisticsTurnoverController {
@RequestMapping(method = RequestMethod.POST, value = "/UPDATE-STATUS")
public R updateStatusById(String list,String location,String transportno,String user,String username) {
List<LogisticsDto> logisticsDtoList = JSONArray.parseArray(list, LogisticsDto.class);
List<LogisticsTurnover> logisticsTurnoverList = new ArrayList<>();
LogisticsTurnover logisticsTurnover = new LogisticsTurnover();
LogisticsBill logisticsBill = new LogisticsBill();
List<LogisticsBill> logisticsBillList = new ArrayList<>();
if (!list.isEmpty() && location != null && transportno != null) {
for (LogisticsDto logisticsDto : logisticsDtoList) {
logisticsTurnover.setHandle(logisticsDto.getHandle());
logisticsTurnover.setStatus("COM");
logisticsTurnover.setStorageLocation(location);
logisticsTurnover.setComDateTime(LocalDateTime.now());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setUser(user);
logisticsTurnover.setUserName(username);
logisticsTurnoverList.add(logisticsTurnover);
logisticsBill.setComTime(LocalDateTime.now());
logisticsBill.setLogisticsBillNo(transportno);
logisticsBill.setLogisticsBo(logisticsDto.getHandle());
logisticsBillList.add(logisticsBill);
}
if (logisticsBillService.saveBatch(logisticsBillList) && logisticsTurnoverService.updateBatchById(logisticsTurnoverList)) {
return R.ok();
Location lt=JSONArray.parseObject(location,Location.class);
Boolean flag;
StringBuffer message = new StringBuffer();
try {
if (!logisticsDtoList.isEmpty()){
flag=logisticsTurnoverService.updateLogistics(logisticsDtoList,lt,message,transportno,user,username);
}else {
return R.failed("转运出错");
flag=false;
}
} else {
}catch (Exception e){
return R.failed("转运出错");
}
if (flag) {
message.insert(0, "转运成功");
return R.ok(message.toString());
} else {
message.insert(0, "转运出错,请检查扫描的库位与转入车间是否匹配,条码:");
return R.failed(message.toString());
}
}
@ -263,38 +255,66 @@ public class LogisticsTurnoverController {
@ResponseBody
@PostMapping("/updatelogisticsTurnover")
public R updatelogisticsTurnover(@RequestBody List<LogisticsDto> logisticsDtoList) {
List<LogisticsTurnover> logisticsTurnoverList = new ArrayList<>();
LogisticsTurnover logisticsTurnover = new LogisticsTurnover();
if (!logisticsDtoList.isEmpty()) {
for (LogisticsDto logisticsDto : logisticsDtoList) {
logisticsTurnover.setHandle(logisticsDto.getHandle());
logisticsTurnover.setIsReceive("Y");
logisticsTurnover.setOther4(LocalDateTime.now());
logisticsTurnover.setOther5(CommonMethods.getUser());
logisticsTurnoverList.add(logisticsTurnover);
}
if (logisticsTurnoverService.updateBatchById(logisticsTurnoverList)) {
return R.ok("接收成功");
// LogisticsTurnover logisticsTurnover = new LogisticsTurnover();
// StringBuffer message = new StringBuffer();
// boolean flag=true;
// if (!logisticsDtoList.isEmpty()) {
// try {
// int seq = 0;
// for (LogisticsDto logisticsDto : logisticsDtoList) {
// if (!logisticsDto.getStatus().equals("COM")) {
// flag=false;
// message.append(seq++ % 3 == 0 ? "\n" : "| |");
// message.append("SFC[" + logisticsDto.getSfc() + "]未转运完成,不允许车间接收!");
// continue;
// } else {
// logisticsTurnover.setHandle(logisticsDto.getHandle());
// logisticsTurnover.setIsReceive("Y");
// logisticsTurnover.setOther4(LocalDateTime.now());
// logisticsTurnover.setOther5(CommonMethods.getUser());
// logisticsTurnoverService.updateById(logisticsTurnover);
// }
//
// }
// } catch (Exception e) {
// return R.failed(e.getMessage());
// }
// }
Boolean flag;
StringBuffer message = new StringBuffer();
try {
if (!logisticsDtoList.isEmpty()){
flag = logisticsTurnoverService.Receivelogistics( message, logisticsDtoList);
}else {
return R.failed("接收出错");
flag=false;
}
} catch (Exception e) {
return R.failed(e.getMessage());
}
if (flag) {
message.insert(0, "接收物料成功");
return R.ok(message.toString());
} else {
return R.failed("接收出错");
message.insert(0, "接收物料失败:");
return R.failed(message.toString());
}
}
@PostMapping("/selectSFC")
@ResponseBody
public String selectSFC(String sfc){
StoreSfcInfo storeSfcInfo= logisticsTurnoverService.storeSelectSfc(sfc);
return Optional.ofNullable(storeSfcInfo).map(t->JSONObject.toJSONString(t)).orElse("null");
}
@PostMapping("/submentInStore")
@ResponseBody
public String selectSFC(String sfc,double qty,int inStoreType,String user,
@RequestParam(value = "storeLocation",defaultValue = "") String storeLocation){
return logisticsTurnoverService.submentInStore(sfc,qty, inStoreType, user,storeLocation);
}
// @PostMapping("/selectSFC")
// @ResponseBody
// public String selectSFC(String sfc){
// StoreSfcInfo storeSfcInfo= logisticsTurnoverService.storeSelectSfc(sfc);
// return Optional.ofNullable(storeSfcInfo).map(t->JSONObject.toJSONString(t)).orElse("null");
// }
// @PostMapping("/submentInStore")
// @ResponseBody
// public String selectSFC(String sfc,double qty,int inStoreType,String user,
// @RequestParam(value = "storeLocation",defaultValue = "") String storeLocation){
//
// return logisticsTurnoverService.submentInStore(sfc,qty, inStoreType, user,storeLocation);
// }
}

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.meapi.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.meapi.model.NwaUser;
@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
/**
*
@ -59,17 +61,10 @@ public class NwaUserController {
*/
@ResponseBody
@GetMapping("/login")
public R NwaUserLogin(NwaUser nwaUser){
List<NwaUser> result;
QueryWrapper<NwaUser> queryWrapper = new QueryWrapper<>();
queryWrapper.setEntity(nwaUser);
result = nwaUserService.list(queryWrapper);
if (!result.isEmpty()){
return R.ok(result.get(0).toString());
}else {
return R.failed("登录失败");
}
public String NwaUserLogin(NwaUser nwaUser){
nwaUser = nwaUserService.AndroidLogin(nwaUser.getUserName());
return Optional.ofNullable(nwaUser)
.map(t -> JSONObject.toJSONString(t)).orElse("null");
}

@ -179,7 +179,7 @@ public class RouterController {
// return R.ok(abnormalBillService.findUploadPictureByAbnormalBo(abnormalBill));
// }
@PostMapping("/selectDisRouterInfo")
@GetMapping("/selectDisRouterInfo")
public R selectDisRouterInfo(@RequestParam(required = false) Map paramMap) {
try {
paramMap.put("site", CommonMethods.getSite());

@ -1,5 +1,7 @@
package com.foreverwin.mesnac.meapi.dto;
import java.time.LocalDateTime;
public class LogisticsDto {
private String handle;
@ -12,6 +14,7 @@ public class LogisticsDto {
}
private String nextWorkCenter;
private String nextWorkCenterDes;
private String sfc;
private String workOrder;
private String itemDescription;
@ -21,7 +24,6 @@ public class LogisticsDto {
private String employeeDescription;
private String nextOperation;
private String status;
private String shopOrder;;
private String texture;
private String qtyToBuild;
@ -30,6 +32,86 @@ public class LogisticsDto {
private String turnoutItem;
private String isReceive;
private String storageLocation;
private String confirm;
private String turnoutWorkcenter;
private LocalDateTime comDatetime;
private LocalDateTime other4;
private String startFromDate;
private String startToDate;
private String completeFromDate;
private String completeToDate;
public String getStartFromDate() {
return startFromDate;
}
public void setStartFromDate(String startFromDate) {
this.startFromDate = startFromDate;
}
public String getStartToDate() {
return startToDate;
}
public void setStartToDate(String startToDate) {
this.startToDate = startToDate;
}
public String getCompleteFromDate() {
return completeFromDate;
}
public void setCompleteFromDate(String completeFromDate) {
this.completeFromDate = completeFromDate;
}
public String getCompleteToDate() {
return completeToDate;
}
public void setCompleteToDate(String completeToDate) {
this.completeToDate = completeToDate;
}
public String getNextWorkCenterDes() {
return nextWorkCenterDes;
}
public void setNextWorkCenterDes(String nextWorkCenterDes) {
this.nextWorkCenterDes = nextWorkCenterDes;
}
public LocalDateTime getComDatetime() {
return comDatetime;
}
public void setComDatetime(LocalDateTime comDatetime) {
this.comDatetime = comDatetime;
}
public LocalDateTime getOther4() {
return other4;
}
public void setOther4(LocalDateTime other4) {
this.other4 = other4;
}
public String getTurnoutWorkcenter() {
return turnoutWorkcenter;
}
public void setTurnoutWorkcenter(String turnoutWorkcenter) {
this.turnoutWorkcenter = turnoutWorkcenter;
}
public String getConfirm() {
return confirm;
}
public void setConfirm(String confirm) {
this.confirm = confirm;
}
public String getTurnoutItem() {
return turnoutItem;

@ -48,8 +48,8 @@ public class LogisticsTurnover extends Model<LogisticsTurnover> {
/**
*
*/
@TableField("USER")
private String user;
@TableField("USER_ID")
private String userId;
/**
*
*/
@ -106,14 +106,17 @@ public class LogisticsTurnover extends Model<LogisticsTurnover> {
private String other5;
@TableField("OTHER6")
private String other6;
private String nextWorkCenter;
public String getNextWorkCenter() {
return nextWorkCenter;
}
public void setNextWorkCenter(String nextWorkCenter) {
this.nextWorkCenter = nextWorkCenter;
}
public String getHandle() {
public String getHandle() {
return handle;
}
@ -145,12 +148,12 @@ public class LogisticsTurnover extends Model<LogisticsTurnover> {
this.createdDateTime = createdDateTime;
}
public String getUser() {
return user;
public String getuserId() {
return userId;
}
public void setUser(String user) {
this.user = user;
public void setuserId(String userId) {
this.userId = userId;
}
public String getUserName() {
@ -306,7 +309,7 @@ public static final String OTHER6 = "OTHER6";
", sfcDispatchBo = " + sfcDispatchBo +
", status = " + status +
", createdDateTime = " + createdDateTime +
", user = " + user +
", userId = " + userId +
", userName = " + userName +
", other1 = " + other1 +
", other2 = " + other2 +

@ -2,9 +2,9 @@ package com.foreverwin.mesnac.meapi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.meapi.dto.LogisticsDto;
import com.foreverwin.mesnac.meapi.model.Location;
import com.foreverwin.mesnac.meapi.model.LogisticsTurnover;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.mesnac.meapi.model.StoreSfcInfo;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.List;
@ -37,7 +37,7 @@ public interface LogisticsTurnoverService extends IService<LogisticsTurnover> {
List<LogisticsDto> selectlogisticsturnoverlist(LogisticsDto logisticsDto);
StoreSfcInfo storeSelectSfc(String sfc);
Boolean Receivelogistics(StringBuffer message, List<LogisticsDto> logisticsDtoList);
String submentInStore(String sfc, double qty, int inStoreType, String user,String storeLocation);
boolean updateLogistics(List<LogisticsDto> logisticsDtoList, Location lt,StringBuffer message, String transportno, String user, String username);
}

@ -28,6 +28,8 @@ public interface NwaUserService extends IService<NwaUser> {
NwaUser findUserByUserName(String id);
NwaUser AndroidLogin(String id);
List<NwaUser> findAllUser(String site);

@ -1,7 +1,10 @@
package com.foreverwin.mesnac.meapi.service.impl;
import com.foreverwin.mesnac.meapi.dto.LogisticsDto;
import com.foreverwin.mesnac.meapi.model.StoreSfcInfo;
import com.foreverwin.mesnac.meapi.mapper.LogisticsBillMapper;
import com.foreverwin.mesnac.meapi.model.Location;
import com.foreverwin.mesnac.meapi.model.LogisticsBill;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -13,6 +16,8 @@ import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
@ -29,6 +34,9 @@ public class LogisticsTurnoverServiceImpl extends ServiceImpl<LogisticsTurnoverM
@Autowired
private LogisticsTurnoverMapper logisticsTurnoverMapper;
@Autowired
private LogisticsBillMapper logisticsBillMapper;
@Override
public IPage<LogisticsTurnover> selectPage(FrontPage<LogisticsTurnover> frontPage, LogisticsTurnover logisticsTurnover) {
@ -65,26 +73,59 @@ public class LogisticsTurnoverServiceImpl extends ServiceImpl<LogisticsTurnoverM
}
@Override
public StoreSfcInfo storeSelectSfc(String sfc) {
return logisticsTurnoverMapper.storeSelectSfc(sfc);
public Boolean Receivelogistics(StringBuffer message, List<LogisticsDto> logisticsDtoList) {
Boolean flag = true;
int seq = 0;
LogisticsTurnover logisticsTurnover = new LogisticsTurnover();
List<LogisticsTurnover> logisticsTurnoverList = new ArrayList<>();
for (LogisticsDto logisticsDto:logisticsDtoList ) {
if (!logisticsDto.getStatus().equals("COM")) {
flag=false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("SFC[" + logisticsDto.getSfc() + "]未转运完成,不允许车间接收!");
continue;
} else {
logisticsTurnover.setHandle(logisticsDto.getHandle());
logisticsTurnover.setIsReceive("Y");
logisticsTurnover.setOther4(LocalDateTime.now());
logisticsTurnover.setOther5(CommonMethods.getUser());
logisticsTurnoverList.add(logisticsTurnover);
}
this.updateById(logisticsTurnover);
}
return flag;
}
@Override
public String submentInStore(String sfc, double qty, int inStoreType, String user,String storeLocation) {
int i =logisticsTurnoverMapper.insertRecordInStore(sfc,qty, inStoreType, user,storeLocation);
if (i>0){
if (inStoreType==0){
int tag=logisticsTurnoverMapper.countLedgerBySfc(sfc);
if (tag==0){
logisticsTurnoverMapper.insertRecordLedger(sfc,qty,storeLocation);
}else {
logisticsTurnoverMapper.updateRecordLedger(sfc,qty);
}
}
return "suess";
}else {
return "error";
}
public boolean updateLogistics(List<LogisticsDto> logisticsDtoList, Location lt,StringBuffer message, String transportno, String user, String username) {
LogisticsTurnover logisticsTurnover = new LogisticsTurnover();
LogisticsBill logisticsBill = new LogisticsBill();
Boolean flag = true;
int seq = 0;
for (LogisticsDto logisticsDto:logisticsDtoList) {
logisticsTurnover.setHandle(logisticsDto.getHandle());
logisticsTurnover.setStatus("COM");
logisticsTurnover.setStorageLocation(lt.getLocationCode());
logisticsTurnover.setComDateTime(LocalDateTime.now());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setuserId(user);
logisticsTurnover.setUserName(username);
logisticsBill.setComTime(LocalDateTime.now());
logisticsBill.setLogisticsBillNo(transportno);
logisticsBill.setLogisticsBo(logisticsDto.getHandle());
if (!lt.getWorkCenter().equals(logisticsDto.getNextWorkCenterDes())) {
flag = false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append(logisticsDto.getSfc());
continue;
} else {
logisticsTurnoverMapper.updateById(logisticsTurnover);
logisticsBillMapper.insert(logisticsBill);
}
}
return flag;
}
}

@ -57,6 +57,11 @@ public class NwaUserServiceImpl extends ServiceImpl<NwaUserMapper, NwaUser> impl
return nwaUserMapper.findUserByUserName(site, user);
}
@Override
public NwaUser AndroidLogin(String id) {
return nwaUserMapper.findUserByUserName("1000", id);
}
@Override
public List<NwaUser> findAllUser(String site) {
return nwaUserMapper.findAllUser(site);

File diff suppressed because it is too large Load Diff

@ -66,7 +66,6 @@ public class PodTemplateController {
//通过SFC+StepID获取检验信息
LogisticsDto result;
Map paramMap=new HashMap();
paramMap.put("site",site);

@ -123,6 +123,8 @@ public class PodTemplateServiceImpl implements PodTemplateService {
@Override
public Map<String, Object> resrceEnter(WorkCenterDto workCenterDto) {
String site = CommonMethods.getSite();
@ -318,6 +320,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
}
//更改派工单状态
sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.START.getCode(),null);
return;
}
}
try {
@ -333,6 +336,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
@Override
public String sfcComplete(SfcDto sfcDto, String resrce,String shoporder) {
String site = CommonMethods.getSite();
String operation = sfcDto.getOperation();
Operation currentRevisionRef = operationService.getCurrentRevisionRef(site, operation);
String sfc = sfcDto.getSfc();
@ -459,16 +463,94 @@ public class PodTemplateServiceImpl implements PodTemplateService {
}
try {
sfcCrossService.completeAction(site, currentRevisionRef.getHandle(), resrce, sfcServiceById.getHandle(), qty);
//更改派工单状态
sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.COMPLETE.getCode(),workHour);
QueryWrapper<SfcDispatch> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SfcDispatch.SFC,sfcDispatchById.getSfc());
queryWrapper.eq(SfcDispatch.SHOP_ORDER,sfcDispatchById.getShopOrder());
queryWrapper.eq(SfcDispatch.DISPATCH_SEQ,String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq())+1));
queryWrapper.like(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo());
Map mapparam=new HashMap();
mapparam.put("site",site);
mapparam.put("sfc",sfcDispatchById.getSfc());
mapparam.put("shopOrder",sfcDispatchById.getShopOrder());
mapparam.put("dispatchSeq",String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq())+1));
List<SfcDispatchDto> sfcDispatchDtoList=sfcDispatchService.findSfcDispatchList(mapparam);
SfcDispatch sfcDispatch=sfcDispatchService.getOne(queryWrapper);
/**
* 1
*/
// if (sfcDispatch!=null && (sfcDispatch.getOperation().equals("HJ_6106JYGX")||sfcDispatch!=null && sfcDispatch.getOperation().equals("HJ_6106JRGX"))){
// //如果为发布状态SFC直接开始 000100426532
// String user = CommonMethods.getUser();
// boolean flag=false;
// List<SfcDto> sfcDtoList=new ArrayList<>();
// Map<String, Object> map = new HashMap<>();
// if (sfcDispatch.getDispatchStatus().equals(DispatchStatusEnum.RELEASE.getCode())){
// SfcDto nextSfcDispatch = new SfcDto();
// nextSfcDispatch.setOperation(sfcDispatch.getOperation());
// nextSfcDispatch.setSfc(sfcDispatch.getSfc());
// nextSfcDispatch.setStepId(sfcDispatch.getStepId());
// nextSfcDispatch.setDispatchNo(sfcDispatch.getDispatchNo());
// sfcDtoList.add(nextSfcDispatch);
// map.put("resrce",sfcDispatch.getResrce());
// map.put("sfcDtoList",sfcDtoList);
// flag=true;
// }
//检验工序取消
// if (sfcDispatch.getOperation().equals("HJ_6106JYGX") && !sfcDispatchDtoList.isEmpty()){
// sfcDispatchService.cancel(user,sfcDispatchDtoList);
//// sfcDispatchDtoList.get(0).setResrce("JYGX0001");
//// sfcDispatchDtoList.get(0).setResourceType("HJ_6106JYGX");
//// sfcDispatchDtoList.get(0).setEmployee("检验");
//// sfcDispatchDtoList.get(0).setEmployeeDescription("检验");
//// sfcDispatchDtoList.get(0).setModifiedDateTime(LocalDateTime.now());
//// sfcDispatchDtoList.get(0).setModifyUser("site_admin");
//// StringBuffer message = new StringBuffer();
//// SfcDto nextSfcDispatch = new SfcDto();
//// nextSfcDispatch.setHandle(sfcDispatch.getHandle());
//// nextSfcDispatch.setResrce("JYGX0001");
//// nextSfcDispatch.setOperation(sfcDispatch.getOperation());
//// nextSfcDispatch.setSfc(sfcDispatch.getSfc());
//// nextSfcDispatch.setStepId(sfcDispatch.getStepId());
//// nextSfcDispatch.setDispatchNo(sfcDispatch.getDispatchNo());
//// sfcDtoList.add(nextSfcDispatch);
//// map.put("resrce","JYGX0001");
//// map.put("sfcDtoList",sfcDtoList);
//// flag = sfcDispatchService.releaseDispatch(site,"site_admin",message,sfcDispatchDtoList);
//
// }
//检入工序取消且触发报工
// else if (sfcDispatch.getOperation().equals("HJ_6106JRGX")){
// sfcDispatchService.cancel(user,sfcDispatchDtoList);
// sendErp(sfcDispatch.getSfc(), sfcDispatch.getStepId(), qty, BigDecimal.ZERO, BigDecimal.ZERO);
//// sfcDispatchDtoList.get(0).setResrce("JRGX0001");
//// sfcDispatchDtoList.get(0).setResourceType("HJ_6106JYGX");
//// sfcDispatchDtoList.get(0).setEmployee("检入");
//// sfcDispatchDtoList.get(0).setEmployeeDescription("检入");
//// sfcDispatchDtoList.get(0).setModifiedDateTime(LocalDateTime.now());
//// sfcDispatchDtoList.get(0).setModifyUser("site_admin");
//// StringBuffer message = new StringBuffer();
// //flag = sfcDispatchService.releaseDispatch(site,"site_admin",message,sfcDispatchDtoList);
// }
// if (flag){
// /**
// * 发布成功后
// */
//
// sfcStart(map);
// }
// }
// if (sfcDispatch!=null && sfcDispatch.getOperation().equals("HJ_6106JYGX")){
// Operation nextcurrentRevisionRef = operationService.getCurrentRevisionRef(site, sfcDispatch.getOperation());
// BigDecimal workHours=BigDecimal.ZERO;
@ -546,7 +628,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
String accessoryType = BomComponentDto.getAccessoryType();
String componentGbo = BomComponentDto.getComponentGbo();
Item currentReversionItem = itemService.selectCurrent(site, StringUtil.trimHandle(componentGbo));
//消耗辅料类型为空或null
//消耗辅料类型为空或nullhengji
if ((accessoryType == null || accessoryType.equals("0")) && stepId.equals(BomComponentDto.getStepId())) {
//查询设备上的料
QueryWrapper<LoadInventory> wrapper = new QueryWrapper<>();
@ -709,8 +791,6 @@ public class PodTemplateServiceImpl implements PodTemplateService {
String sfc = (String) paramMap.get("sfc");
String site = (String) paramMap.get("site");
//校验产品条码是否存在
Sfc sfcById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfc));
if (sfcById == null) {
@ -720,18 +800,18 @@ public class PodTemplateServiceImpl implements PodTemplateService {
//当前工序
SfcDispatchDto dispatchDto=sfcDispatchCommonService.findNewtistSfcDispatchBySfc(sfc);
Operation operationBySfcBo = commonService.getOperationBySfcBo(sfcById.getHandle());
QueryWrapper<InspectionTask> queryWrapper = new QueryWrapper<>();
QueryWrapper<InspectionTask> queryWrapper = new QueryWrapper<>();
InspectionTask inspectionTask=new InspectionTask();
inspectionTask.setSfc(sfc);
inspectionTask.setStepId(dispatchDto.getStepId());
queryWrapper.setEntity(inspectionTask);
InspectionTask inspectionTaskServiceOne=inspectionTaskService.getOne(queryWrapper);
paramMap.put("HANDLE",inspectionTaskServiceOne.getSfcDispatchBo());
LogisticsDto logisticsDto=new LogisticsDto();
List<SfcDispatchDto> list = sfcDispatchMapper.findSfcDispatchList(paramMap);
LogisticsTurnover logisticsTurnover=logisticsTurnoverService.queryNewtistTurnoverTask(inspectionTaskServiceOne.getHandle());
if (!list.isEmpty()){
@ -739,6 +819,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
logisticsDto.setItemDescription(list.get(0).getItemDescription());
logisticsDto.setSfc(sfc);
logisticsDto.setNextWorkCenter(logisticsTurnover.getTurnoverWorkCenter());
logisticsDto.setNextWorkCenterDes(logisticsTurnover.getNextWorkCenter());
}
//转运任务
return logisticsDto;

@ -86,7 +86,7 @@ public class InspectionTaskManageController {
@ResponseBody
@PostMapping("/saveInspectionTaskDetail")
public R saveInspectionTaskDetail(@RequestBody InspectionTaskManage inspectionTaskManage) {
public R saveInspectionTaskDetail(@RequestBody InspectionTaskManage inspectionTaskManage ) {
try {
String site = CommonMethods.getSite();
String user = CommonMethods.getUser();

@ -23,6 +23,15 @@ public class InspectionTaskManageRequest implements Serializable {
private Date dateFrom;
private Date dateTo;
private String result;
private String sfcdispatchBo;
public String getSfcdispatchBo() {
return sfcdispatchBo;
}
public void setSfcdispatchBo(String sfcdispatchBo) {
this.sfcdispatchBo = sfcdispatchBo;
}
public String getResult() {
return result;

@ -36,6 +36,28 @@ public class InspectionTaskManage implements Serializable {
private String dispatchUser;
private String sfcdispatchBo;
private String ncQty;
private String questionC;
private String itemBo;
public String getItemBo() {
return itemBo;
}
public void setItemBo(String itemBo) {
this.itemBo = itemBo;
}
public String getQuestionC() {
return questionC;
}
public void setQuestionC(String questionC) {
this.questionC = questionC;
}
public String getNcQty() {
return ncQty;
@ -278,4 +300,5 @@ public class InspectionTaskManage implements Serializable {
public void setDispatchUser(String dispatchUser) {
this.dispatchUser = dispatchUser;
}
}

@ -3,6 +3,7 @@ package com.foreverwin.mesnac.quality.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.constant.IntegrationTypeConstant;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
import com.foreverwin.mesnac.common.enums.HandleEnum;
import com.foreverwin.mesnac.common.model.InspectionTask;
import com.foreverwin.mesnac.common.model.InspectionTaskDetail;
@ -15,13 +16,18 @@ import com.foreverwin.mesnac.common.util.StringUtil;
import com.foreverwin.mesnac.dispatch.model.SfcDispatch;
import com.foreverwin.mesnac.dispatch.service.SfcDispatchService;
import com.foreverwin.mesnac.meapi.model.LogisticsTurnover;
import com.foreverwin.mesnac.meapi.model.Router;
import com.foreverwin.mesnac.meapi.service.LogisticsTurnoverService;
import com.foreverwin.mesnac.meapi.service.RouterService;
import com.foreverwin.mesnac.quality.dto.InspectionTaskManageRequest;
import com.foreverwin.mesnac.quality.mapper.InspectionTaskManageMapper;
import com.foreverwin.mesnac.quality.model.InspectionTaskManageDetail;
import com.foreverwin.mesnac.quality.model.InspectionTaskManage;
import com.foreverwin.mesnac.quality.service.InspectionTaskManageService;
import com.foreverwin.modular.core.exception.BusinessException;
import com.foreverwin.modular.core.util.CommonMethods;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -30,9 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.*;
@Service
@Transactional(rollbackFor = Exception.class)
@ -49,7 +53,9 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
@Autowired
private LogisticsTurnoverService logisticsTurnoverService;
@Autowired
private IntegrationLogService integrationLogService;
private RouterService routerService;
private static Logger logger = LoggerFactory.getLogger(InspectionTaskManageServiceImpl.class);
@Override
@ -141,7 +147,6 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
throw BusinessException.build("检验任务【"+taskNo+"】有检验项目,不允许执行合格操作");
}
//修改数据
InspectionTask inspectionTask = new InspectionTask();
inspectionTask.setHandle(request.getHandle());
@ -150,12 +155,74 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
inspectionTask.setModifyUser(user);
inspectionTask.setModifiedDateTime(dateTime);
inspectionTaskList.add(inspectionTask);
}
//质检合格后判断下道工序是否需要跨车间转运,如果是则生成转运待办任务
/**
* 1Z_SFC_DISPATCH
* 2
* 3
*/
SfcDispatch sfcDispatchById = sfcDispatchService.getById(request.getSfcdispatchBo());
Router router = routerService.getById(sfcDispatchById.getRouterBo());
if (!router.getRouterType().equals("C")){
//找下道工序 (返修工序除外)
QueryWrapper<SfcDispatch> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SfcDispatch.SFC,sfcDispatchById.getSfc());
queryWrapper.eq(SfcDispatch.SHOP_ORDER,sfcDispatchById.getShopOrder());
queryWrapper.eq(SfcDispatch.DISPATCH_SEQ,String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq())+1));
SfcDispatch nextsfcDispatch=sfcDispatchService.getOne(queryWrapper);
//判断下道工序是否为空
if (nextsfcDispatch!=null && !nextsfcDispatch.getOperation().equals("HJ_6106JYGX") && !nextsfcDispatch.getOperation().equals("HJ_6106JRGX")){
logger.info("质检工序合格"+sfcDispatchById.getOperation()+"的下道工序不为空,下道工序为"+nextsfcDispatch.getOperation());
//如果不等于空,判断下道工序的工作中心和质检完的工作中心是否一致
if (!sfcDispatchById.getWorkCenter().equals(nextsfcDispatch.getWorkCenter())){
logger.info("下道工序和质检工序的工作中心不相同");
//如果不相等的话 插入周转任务表
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(request.getSfcdispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther1(nextsfcDispatch.getOperation());
logisticsTurnover.setOther2(sfcDispatchById.getStepId());
logisticsTurnover.setOther3(request.getHandle());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setTurnoverWorkCenter(nextsfcDispatch.getWorkCenter());
logisticsTurnover.setTurnoutItem(request.getItem());
logisticsTurnover.setTurnoutWorkcenter(sfcDispatchById.getWorkCenter());
try {
logisticsTurnoverService.save(logisticsTurnover);
}catch (Exception e){
logger.error("周转任务表插入出错"+e.getMessage());
}
}
}else if (Constants.RK.equals(sfcDispatchById.getOther2())){
//如果为空值 则判断下道工序的入库标识是否入库
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(request.getSfcdispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther2(sfcDispatchById.getStepId());
logisticsTurnover.setOther3(request.getHandle());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setTurnoverWorkCenter("BCP");
logisticsTurnover.setTurnoutItem(request.getItem());
logisticsTurnover.setTurnoutWorkcenter(sfcDispatchById.getWorkCenter());
logisticsTurnoverService.save(logisticsTurnover);
}
}
}
if (inspectionTaskList != null && inspectionTaskList.size() > 0) {
inspectionTaskService.updateBatchById(inspectionTaskList);
}
}
@Override
@ -205,13 +272,6 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
throw BusinessException.build("检验任务【" +taskNo+ "】不是【新建|检验中】,不允许操作!");
}
inspectionTaskModel.setStatus("SAVE".equals(type) ? Constants.INSPECTION_TASK_STATUS_DOING : Constants.INSPECTION_TASK_STATUS_COMPLETE);
inspectionTaskModel.setResult(result);
inspectionTaskModel.setComments(inspectionTaskManage.getComments());
inspectionTaskModel.setModifyUser(user);
inspectionTaskModel.setModifiedDateTime(dateTime);
inspectionTaskService.updateById(inspectionTaskModel);
//质检合格后判断下道工序是否需要跨车间转运,如果是则生成转运待办任务
if("OK".equals(result)){
/**
@ -220,66 +280,71 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
* 3
*/
SfcDispatch sfcDispatchById = sfcDispatchService.getById(inspectionTaskManage.getSfcdispatchBo());
QueryWrapper<SfcDispatch> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SfcDispatch.SFC,sfcDispatchById.getSfc());
queryWrapper.eq(SfcDispatch.SHOP_ORDER,sfcDispatchById.getShopOrder());
queryWrapper.eq(SfcDispatch.DISPATCH_SEQ,String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq())+1));
SfcDispatch sfcDispatch=sfcDispatchService.getOne(queryWrapper);
if (sfcDispatch!=null&&!sfcDispatchById.getWorkCenter().equals(sfcDispatch.getWorkCenter())){
IntegrationLog log = new IntegrationLog();
log.setHandle(UUID.randomUUID().toString());
log.setSite(site);
log.setIntegrationType("LOGISTICS");
log.setCategory("RESPONSE");
log.setIntegrationWay("LOGISTICS");
log.setIntegrationMethod("InterfaceService.LOGISTICS");
log.setParam(sfcDispatch.toString());
log.setStatus("SUCCESS");
log.setResultMessage("SUCCESS");
log.setCreatedDateTime(LocalDateTime.now());
integrationLogService.saveIntegrationLog(log);
//生成周转任务的同时发送消息提示到手持设备
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(inspectionTaskModel.getSfcDispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther1(sfcDispatch.getOperation());
logisticsTurnover.setOther2(inspectionTaskModel.getStepId());
logisticsTurnover.setOther3(inspectionTaskModel.getHandle());
logisticsTurnover.setTurnoverWorkCenter(sfcDispatch.getWorkCenter());
logisticsTurnover.setTurnoutItem(inspectionTaskManage.getItem());
logisticsTurnover.setTurnoutWorkcenter(inspectionTaskManage.getWorkCenter());
logisticsTurnoverService.save(logisticsTurnover);
}
else {
//判断此工序是否需要转入半成品库位
if (Constants.RK.equals(sfcDispatchById.getOther2())){
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(inspectionTaskModel.getSfcDispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther1(sfcDispatchById.getOperation());
logisticsTurnover.setOther2(inspectionTaskModel.getStepId());
logisticsTurnover.setOther3(inspectionTaskModel.getHandle());
logisticsTurnover.setTurnoverWorkCenter(sfcDispatchById.getWorkCenter());
logisticsTurnover.setTurnoutItem(inspectionTaskManage.getItem());
logisticsTurnover.setTurnoutWorkcenter(inspectionTaskManage.getWorkCenter());
logisticsTurnoverService.save(logisticsTurnover);
}
}
SfcDispatch sfcDispatchById = sfcDispatchService.getById(inspectionTaskManage.getSfcdispatchBo());
Router router = routerService.getById(sfcDispatchById.getRouterBo());
if (!router.getRouterType().equals("C")){
//找下道工序
QueryWrapper<SfcDispatch> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SfcDispatch.SFC,sfcDispatchById.getSfc());
queryWrapper.eq(SfcDispatch.SHOP_ORDER,sfcDispatchById.getShopOrder());
queryWrapper.eq(SfcDispatch.DISPATCH_SEQ,String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq())+1));
SfcDispatch nextsfcDispatch=sfcDispatchService.getOne(queryWrapper);
//判断下道工序是否为空
if (nextsfcDispatch!=null && !nextsfcDispatch.getOperation().equals("HJ_6106JYGX") && !nextsfcDispatch.getOperation().equals("HJ_6106JRGX")){
logger.info("质检工序合格"+sfcDispatchById.getOperation()+"的下道工序不为空,下道工序为"+nextsfcDispatch.getOperation());
//如果不等于空,判断下道工序的工作中心和质检完的工作中心是否一致
if (!sfcDispatchById.getWorkCenter().equals(nextsfcDispatch.getWorkCenter())){
logger.info("下道工序和质检工序的工作中心不相同");
//如果不相等的话 插入周转任务表
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(inspectionTaskModel.getSfcDispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther1(nextsfcDispatch.getOperation());
logisticsTurnover.setOther2(inspectionTaskModel.getStepId());
logisticsTurnover.setOther3(inspectionTaskModel.getHandle());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setTurnoverWorkCenter(nextsfcDispatch.getWorkCenter());
logisticsTurnover.setTurnoutItem(inspectionTaskManage.getItem());
logisticsTurnover.setTurnoutWorkcenter(inspectionTaskManage.getWorkCenter());
try {
logisticsTurnoverService.save(logisticsTurnover);
}catch (Exception e){
logger.error("周转任务表插入出错"+e.getMessage());
}
}
}else if (Constants.RK.equals(sfcDispatchById.getOther2())){
//如果为空值 则判断下道工序的入库标识是否入库
LogisticsTurnover logisticsTurnover=new LogisticsTurnover();
logisticsTurnover.setHandle("LogisticsBO:1000"+","+UUID.randomUUID().toString());
logisticsTurnover.setSfcDispatchBo(inspectionTaskModel.getSfcDispatchBo());
logisticsTurnover.setStatus(Constants.LOGISTICS_NEW);
logisticsTurnover.setCreatedDateTime(LocalDateTime.now());
logisticsTurnover.setOther2(inspectionTaskModel.getStepId());
logisticsTurnover.setOther3(inspectionTaskModel.getHandle());
logisticsTurnover.setIsReceive("N");
logisticsTurnover.setTurnoverWorkCenter("BCP");
logisticsTurnover.setTurnoutItem(inspectionTaskManage.getItem());
logisticsTurnover.setTurnoutWorkcenter(inspectionTaskManage.getWorkCenter());
logisticsTurnoverService.save(logisticsTurnover);
}
}
}
inspectionTaskModel.setStatus("SAVE".equals(type) ? Constants.INSPECTION_TASK_STATUS_DOING : Constants.INSPECTION_TASK_STATUS_COMPLETE);
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)) {
@ -300,4 +365,5 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ
newInspectionTask.setModifiedDateTime(dateTime);
inspectionTaskService.save(newInspectionTask);*/
}
}

@ -32,11 +32,13 @@
<result column="DISPATCH_USER" property="dispatchUser"/>
<result column="SFC_DISPATCH_BO" property="sfcdispatchBo"/>
<result column="NC_QTY" property="ncQty"/>
<result column="QUESTION_C" property="questionC"/>
<result column="ITEM_BO" property="itemBo"/>
</resultMap>
<select id="findInspectionTask" resultMap="BaseResultMap">
SELECT B.HANDLE, B.SITE, B.CATEGORY, B.TASK_NO, B.DESCRIPTION, B.STATUS, B.INSPECTION_ITEM_BO, B.WORK_CENTER, B.SHOP_ORDER, B.SFC, B.OPERATION, B.STEP_ID, B.RESRCE, B.RESULT, B.COMMENTS, B.CREATE_USER, B.CREATED_DATE_TIME, B.MODIFY_USER, B.MODIFIED_DATE_TIME,
M.ITEM, Z.DESCRIPTION ITEM_DESCRIPTION,ZNU.FULL_NAME FULL_NAME,RS.DESCRIPTION RESRCE_DESCRIPTION,
SELECT B.HANDLE, B.SITE, B.CATEGORY, B.TASK_NO, B.DESCRIPTION, B.STATUS, B.INSPECTION_ITEM_BO, B.WORK_CENTER, B.SHOP_ORDER, B.SFC, B.OPERATION, B.STEP_ID, B.RESRCE, B.RESULT,B.QUESTION_C, B.COMMENTS, B.CREATE_USER, B.CREATED_DATE_TIME, B.MODIFY_USER, B.MODIFIED_DATE_TIME,
M.ITEM,M.HANDLE ITEM_BO, Z.DESCRIPTION ITEM_DESCRIPTION,ZNU.FULL_NAME FULL_NAME,RS.DESCRIPTION RESRCE_DESCRIPTION,
O.OPERATION OPERATION,OT.DESCRIPTION OPERATION_DESCRIPTION,S.QTY SFC_QTY,B.COMMENTS COMMENTS,
ZSD.EMPLOYEE_DESCRIPTION DISPATCH_USER,P.SHOP_ORDER,NVL(ZAB.NC_QTY, 0) NC_QTY,B.SFC_DISPATCH_BO
FROM Z_INSPECTION_TASK B

Loading…
Cancel
Save