Merge remote-tracking branch 'origin/master'

master
zpl 4 years ago
commit 41a2830064

@ -8,6 +8,8 @@ package com.foreverwin.mesnac.common.constant;
*/
public interface Constants {
String OP_6106GX = "6106GX";
String STATUS_NEW = "NEW";
String STATE_CONFIRM ="CONF";
String STATE_REJECT="REJ";
@ -175,6 +177,4 @@ public interface Constants {
*/
String UNTREATED = "UN"; //未处理
String PROCESSED = "PR"; //已处理
}

@ -0,0 +1,29 @@
package com.foreverwin.mesnac.common.dto;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-08-10
*/
public class UsrDto {
private String userName;
private String fullName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
}

@ -0,0 +1,17 @@
package com.foreverwin.mesnac.common.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.common.dto.UsrDto;
import java.util.List;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-08-10
*/
public interface UserService {
List<UsrDto> findList(String user);
IPage findPage(IPage page,String user);
}

@ -370,7 +370,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
LabelPrintDto labelPrintDto = new LabelPrintDto();
labelPrintDto.setPrinter(printName);
labelPrintDto.setPrintTemplate(Constants.PRINT_TYPE_SFC);
labelPrintDto.setItem(sfcDispatchDto.getItem());
labelPrintDto.setItem(selectCurrent.getItem());
labelPrintDto.setItemDescription(selectCurrent.getDescription());
labelPrintDto.setSfc(prodReadyTask.getSfc());
Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, prodReadyTask.getSfc()));

@ -64,6 +64,11 @@
<artifactId>anomaly</artifactId>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>listener</artifactId>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>quartz</artifactId>

@ -33,7 +33,7 @@ ftp:
#打印服务器配置
print:
server: http://localhost:8080/CodeSoftPrintWeb/printService
server: http://172.16.251.188:8022/print/mesnacprint
activeMq:
sendWeChatMessage: tcp://localhost:61616?wireFormat.maxInactivityDuration=0

@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.common.service.UserService;
import com.foreverwin.mesnac.dispatch.dto.UserResourceDto;
import com.foreverwin.mesnac.dispatch.model.UserResource;
import com.foreverwin.mesnac.dispatch.service.UserResourceService;
@ -28,6 +29,10 @@ public class UserResourceController {
@Autowired
public UserResourceService userResourceService;
@Autowired
public UserService userService;
/**
* id
*
@ -139,7 +144,7 @@ public class UserResourceController {
return R.ok(userResourceService.findAll(userResourceDto));
}
@PostMapping("saveAll")
@PostMapping("/saveAll")
public R saveAll(@RequestBody Map<String,Object> param){
String resource = (String) param.get("resource");
String user = (String) param.get("user");
@ -162,4 +167,15 @@ public class UserResourceController {
}
}
@GetMapping("/findList")
public R findList(String user){
return R.ok(userService.findList(user));
}
@GetMapping("/findPage")
public R page(FrontPage frontPage) {
String globalQuery = frontPage.getGlobalQuery();
return R.ok(userService.findPage(frontPage.getPagePlus(), globalQuery));
}
}

@ -94,13 +94,6 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
}
for (ShopOrderRelease shopOrderReleaseModel : shopOrderList) {
String workCenter = shopOrderReleaseModel.getWorkCenter();
String workCenterBo = HandleEnum.WORK_CENTER.getHandle(site, workCenter);
WorkCenter workCenterModel = workCenterService.getById(workCenterBo);
if (workCenterModel == null) {
throw new BaseException("工作中心[" + workCenter + "]不存在");
}
//查询工单信息
String shopOrder = shopOrderReleaseModel.getShopOrder();
String shopOrderBo = shopOrderReleaseModel.getShopOrderBo();
@ -133,6 +126,23 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]主数据不完整,请确认");
}
//获取车间
String workCenter = null;
String workCenterBo = null;
for (RouterDTO routerDTO: routerList) {
String operation = routerDTO.getOperation();
if (!Constants.OP_6106GX.equals(operation) && operation.contains("_")) {
workCenter = operation.split("_")[0];
workCenterBo = HandleEnum.WORK_CENTER.getHandle(site, workCenter);
WorkCenter workCenterModel = workCenterService.getById(workCenterBo);
if (workCenterModel == null) {
throw BusinessException.build("生产车间【" +workCenter+ "】不存在");
}
break;
}
}
//工单下达
ReleaseShopOrderResponse response = null;
try {

@ -34,7 +34,7 @@
FROM SHOP_ORDER SO
INNER JOIN ITEM IM ON SO.PLANNED_ITEM_BO = IM.HANDLE
INNER JOIN STATUS ST ON SO.STATUS_BO = ST.HANDLE AND ST.STATUS_GROUP = 'ORDERS'
INNER JOIN ROUTER RT ON SO.PLANNED_ROUTER_BO = RT.HANDLE
INNER JOIN ROUTER RT ON SO.PLANNED_ROUTER_BO = RT.HANDLE OR (SO.PLANNED_ROUTER_BO = 'RouterBO:'||RT.SITE||','||RT.ROUTER||','||RT.ROUTER_TYPE||',#' AND RT.CURRENT_REVISION = 'true')
INNER JOIN ROUTER_OPERATION RO ON RT.ENTRY_ROUTER_STEP_BO = RO.ROUTER_STEP_BO
INNER JOIN OPERATION OP ON SO.SITE = OP.SITE AND SPLIT(RO.OPERATION_BO,2) = OP.OPERATION AND OP.CURRENT_REVISION = 'true'
LEFT JOIN (

@ -442,13 +442,13 @@ public class InterfaceServiceImpl implements InterfaceService {
* 2.MES=_ERP
* 3.MES=MES
*/
String erpWorkCenter = componentDto.getOPERATION();
if (StringUtil.isBlank(erpWorkCenter)) {
throw BusinessException.build("BOM节点下字段【OPERATION】不能为空!");
String stepId = componentDto.getSTEP_ID();
if (StringUtil.isBlank(stepId)) {
throw BusinessException.build("步骤标示不能为空!");
}
Operation operationModel = operationService.queryOperationByErpWorkCenter(site, erpWorkCenter);
Operation operationModel = operationService.getOperationByRouterStepId(site, bom, stepId);
if (operationModel == null) {
throw BusinessException.build("ERP工作中心【" +erpWorkCenter+"】对应的MES工序未维护");
throw BusinessException.build("步骤标识【"+stepId+"】在工艺路线【"+bom+"】未到对应的工序");
}
String operationBo = operationModel.getHandle();
@ -532,10 +532,21 @@ public class InterfaceServiceImpl implements InterfaceService {
String stepId = routerStepDto.getSTEP_ID();
String erpWorkCenter = routerStepDto.getOPERATION().trim();
if (StringUtil.isBlank(entryRouterStep)) {
entryRouterStep = stepId;
}
//上一步骤添加当前步骤为下一步骤
if (i > 0) {
RouterNextStep routerNextStep = new RouterNextStep();
routerNextStep.setNextStepId(stepId);
routerStepList.get(i - 1).getRouterNextStepList().add(routerNextStep);
}
String operation = null;
String operationBo = null;
if (StringUtil.isBlank(erpWorkCenter)) {
operation = (i == 0) ? "HJ01_6106GX" : "6106GX";
operation = Constants.OP_6106GX;
Operation operationModel = operationService.getCurrentRevisionRef(site, operation);
if (operationModel == null) {
throw BusinessException.build("工序编号【" +operation+ "】不存在");
@ -543,19 +554,6 @@ public class InterfaceServiceImpl implements InterfaceService {
operation = operationModel.getOperation();
operationBo = operationModel.getHandle();
} else {
if (StringUtil.isBlank(entryRouterStep)) {
entryRouterStep = stepId;
}
//上一步骤添加当前步骤为下一步骤
if (i > 0) {
RouterNextStep routerNextStep = new RouterNextStep();
routerNextStep.setNextStepId(stepId);
routerStepList.get(i - 1).getRouterNextStepList().add(routerNextStep);
}
/**
*
* 1.ERP
@ -680,6 +678,18 @@ public class InterfaceServiceImpl implements InterfaceService {
if (StringUtil.isBlank(plannedItem)) {
throw BusinessException.build("工单的计划物料不能拿为空");
}
//查询物料清单和工艺路线
Bom bomModel = bomService.getMaxRevisionBom(site, plannedBom);
if (bomModel == null) {
throw BusinessException.build("工单【" +shopOrder+ "】的物料清单未同步!");
}
Router routerModel = routerService.getMaxRevisionRouter(site, plannedRouter);
if (routerModel == null) {
throw BusinessException.build("工单【" +shopOrder+ "】的工艺路线未同步!");
}
String plannedItemBo = HandleEnum.ITEM.getHandle(site, plannedItem, "A");
String plannedBomBo = HandleEnum.BOM.getHandle(site, plannedBom, bomType, "#");
String plannedRouterBo = HandleEnum.ROUTER.getHandle(site, plannedRouter, routerType, "#");

@ -1,6 +1,8 @@
package com.foreverwin.mesnac.listener.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.common.dto.UsrDto;
import com.foreverwin.mesnac.listener.model.SysUser;
import com.foreverwin.mesnac.listener.model.Usr;
import org.apache.ibatis.annotations.Param;
@ -21,4 +23,8 @@ public interface UsrMapper extends BaseMapper<Usr> {
List<SysUser> selectListForPd(@Param("site") String site);
/*List<Usr> userList(Usr user);*/
List<UsrDto> findList(@Param("site")String site,@Param("user")String user);
IPage findPage(IPage page,@Param("site")String site,@Param("user")String user);
}

@ -2,6 +2,7 @@ package com.foreverwin.mesnac.listener.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.mesnac.common.service.UserService;
import com.foreverwin.mesnac.listener.model.SysUser;
import com.foreverwin.mesnac.listener.model.Usr;
import com.foreverwin.modular.core.util.FrontPage;
@ -16,7 +17,7 @@ import java.util.List;
* @author sungang
* @since 2020-10-16
*/
public interface UsrService extends IService<Usr> {
public interface UsrService extends IService<Usr>, UserService {
/**
*

@ -3,10 +3,12 @@ package com.foreverwin.mesnac.listener.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.UsrDto;
import com.foreverwin.mesnac.listener.mapper.UsrMapper;
import com.foreverwin.mesnac.listener.model.SysUser;
import com.foreverwin.mesnac.listener.model.Usr;
import com.foreverwin.mesnac.listener.service.UsrService;
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;
@ -49,6 +51,18 @@ public class UsrServiceImpl extends ServiceImpl<UsrMapper, Usr> implements UsrSe
return usrMapper.selectListForPd(site);
}
@Override
public List<UsrDto> findList(String user) {
String site = CommonMethods.getSite();
return usrMapper.findList(site,user);
}
@Override
public IPage findPage(IPage page, String user) {
String site = CommonMethods.getSite();
return usrMapper.findPage(page,site,user);
}
/* @Override
public List<Usr> userList(Usr user) {
String site = CommonMethods.getSite();

@ -29,6 +29,12 @@
<result column="ERP_USER" property="erpUser" />
</resultMap>
<resultMap id="usrDto" type="com.foreverwin.mesnac.common.dto.UsrDto">
<result column="USER_NAME" property="userName"/>
<result column="FULL_NAME" property="fullName"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
HANDLE, CHANGE_STAMP, SITE, USER_ID, CURRENT_OPERATION_BO, CURRENT_RESOURCE_BO, CREATED_DATE_TIME, MODIFIED_DATE_TIME, BADGE_NUMBER, EMPLOYEE_NUMBER, HIRE_DATE, TERMINATION_DATE, ALLOW_CLOCK_IN_NON_PROD, ACTION_CLOCK_OUT_SFC, CLOCK_IN_OUT_RANGE, ALLOW_SUP_TIME_EDIT_APPR, APPR_REQ_FOR_EXPORT, AUTO_CLOCK_OUT, CLOCK_IN_CONTROL, DEFAULT_WORK_CENTER_BO, ERP_PERSONNEL_NUMBER, ERP_USER
@ -606,5 +612,23 @@
</foreach>)
</delete>
<!-- BaseMapper标准查询/修改/删除 -->
<select id="findList" resultMap="usrDto">
SELECT U.USER_ID USER_NAME,ZNU.FULL_NAME FULL_NAME
FROM USR U
INNER JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = U.USER_ID
WHERE U.SITE=#{site} AND U.USER_ID = #{user}
</select>
<select id="findPage" resultMap="usrDto">
SELECT U.USER_ID USER_NAME,ZNU.FULL_NAME FULL_NAME
FROM USR U
INNER JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = U.USER_ID
WHERE U.SITE=#{site}
<if test="user != null and user != ''">
AND (
U.USER_ID LIKE '%${user}%'
OR ZNU.FULL_NAME LIKE '%${user}%'
)
</if>
</select>
</mapper>

@ -29,5 +29,5 @@ public interface OperationMapper extends BaseMapper<Operation> {
IPage<Operation> selectOperationStep( IPage<Operation> page, @Param("locale") String locale,@Param("ew") Wrapper<Operation> wrapper);
Operation selectOperationByRouterStepId(@Param("site") String site, @Param("router") String router, @Param("stepId") String stepId);
}

@ -40,4 +40,13 @@ public interface OperationService extends IService<Operation> {
*/
Operation queryOperationByErpWorkCenter(String site, String erpWorkCenter);
/**
* By 线&
*
* @param site
* @param router
* @param stepId
* @return
*/
Operation getOperationByRouterStepId(String site, String router, String stepId);
}

@ -66,7 +66,10 @@ public class OperationServiceImpl extends ServiceImpl<OperationMapper, Operation
return operationMapper.queryOperationByErpWorkCenter(site, erpWorkCenter);
}
@Override
public Operation getOperationByRouterStepId(String site, String router, String stepId) {
return operationMapper.selectOperationByRouterStepId(site, router, stepId);
}
}

@ -636,5 +636,12 @@
ORDER BY RS.STEP_ID
</select>
<select id="selectOperationByRouterStepId" resultMap="BaseResultMap">
SELECT OP.HANDLE, OP.CHANGE_STAMP, OP.SITE, OP.OPERATION, OP.TYPE, OP.SPECIAL_ROUTER_BO, OP.STATUS_BO, OP.RESOURCE_TYPE_BO, OP.REVISION, OP.CURRENT_REVISION, OP.EFF_START_DATE, OP.EFF_END_DATE, OP.CREATED_DATE_TIME, OP.MODIFIED_DATE_TIME, OP.PCA_DASHBOARD_MODE, OP.DEFAULT_NC_CODE_BO, OP.FAILURE_TRACKING_CONFIG_BO, OP.RESOURCE_BO, OP.MAX_LOOP, OP.REQUIRED_TIME_IN_PROCESS, OP.REPORTING_STEP, OP.PREV_SITE, OP.ORIGINAL_TRANSFER_KEY, OP.SPECIAL_INSTRUCTION, OP.REPORTING_CENTER_BO, OP.ERP_CONTROL_KEY_BO, OP.ERP_WORK_CENTER_BO
FROM ROUTER RT
INNER JOIN ROUTER_STEP RS ON RS.ROUTER_BO = RT.HANDLE AND RT.CURRENT_REVISION = 'true'
INNER JOIN ROUTER_OPERATION RO ON RO.ROUTER_STEP_BO = RS.HANDLE
INNER JOIN OPERATION OP ON RO.OPERATION_BO = 'OperationBO:' ||OP.SITE||','||OP.OPERATION||',#' AND OP.CURRENT_REVISION = 'true'
WHERE RT.SITE = #{site} AND RT.ROUTER = #{router} AND RS.STEP_ID = #{stepId}
</select>
</mapper>

@ -132,6 +132,12 @@
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>listener</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>dataimport</artifactId>

@ -26,9 +26,9 @@ public class SplitSfcController {
@ResponseBody
@GetMapping("/getSfcData")
public R getSfcData(String sfc){
public R getSfcData(SfcDto dto){
SfcDto result;
result = splitSfcService.getSfcData(sfc);
result = splitSfcService.getSfcData(dto);
return R.ok(result);
}
@ -49,7 +49,7 @@ public class SplitSfcController {
@ResponseBody
@GetMapping("/splitSfc")
public R getSfcData(SfcDto sfcDto){
public R splitSfc(SfcDto sfcDto){
return R.ok( splitSfcService.splitSfc(sfcDto));
}

@ -20,5 +20,5 @@ public interface SplitSfcMapper extends BaseMapper<SplitSfc> {
SfcDto getSfcData(@Param("handle") String handle);
SplitSfcDto getAbnormalQty(@Param("site")String site, @Param("sfc")String sfc, @Param("operation") String operation);
SplitSfcDto getAbnormalQty(@Param("site") String site, @Param("sfc") String sfc, @Param("operation") String operation,@Param("abnormalNo") String abnormalNo);
}

@ -27,7 +27,7 @@ public interface SplitSfcService extends IService<SplitSfc> {
List<SplitSfc> selectList(SplitSfc splitSfc);
SfcDto getSfcData(String sfc);
SfcDto getSfcData(SfcDto dto);
SfcDto getGoodSfcData(String sfc);

@ -73,9 +73,15 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
}
@Override
public SfcDto getSfcData(String sfc) {
public SfcDto getSfcData(SfcDto dto) {
String site = CommonMethods.getSite();
String handle = HandleEnum.SFC.getHandle(site, sfc);
String handle = HandleEnum.SFC.getHandle(site, dto.getSfc());
if (StringUtil.isBlank(dto.getSfc())){
throw new BaseException("产品条码不能为空");
}
if (StringUtil.isBlank(dto.getAbnormalNo())){
throw new BaseException("异常单号不能为空");
}
//根据sfc找工单等信息
SfcDto sfcData = splitSfcMapper.getSfcData(handle);
if (sfcData==null){
@ -83,7 +89,7 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
}
String operation = sfcData.getOperation();
//查询质量异常记录数量
SplitSfcDto sfcDto=splitSfcMapper.getAbnormalQty(site,sfc,operation);
SplitSfcDto sfcDto=splitSfcMapper.getAbnormalQty(site,dto.getSfc(),operation,dto.getAbnormalNo());
if (sfcDto==null){
throw new BaseException("未找到闭环关闭的质量异常");
}
@ -154,6 +160,10 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
public SplitSfc splitSfc(SfcDto sfcDto){
String site = CommonMethods.getSite();
String sfc = sfcDto.getSfc();
String abnormalNo = sfcDto.getAbnormalNo();
if (StringUtil.isBlank(abnormalNo)){
throw new BaseException("异常单号不能为空");
}
String handle = HandleEnum.SFC.getHandle(site, sfc);
BigDecimal splitQty = new BigDecimal(sfcDto.getQty());
@ -164,7 +174,7 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
throw new BaseException("未找到产品条码信息");
}
//查询质量异常记录数量 处置工艺路线及不良代码
SplitSfcDto splitSfcDto=splitSfcMapper.getAbnormalQty(site,sfc,operation);
SplitSfcDto splitSfcDto=splitSfcMapper.getAbnormalQty(site,sfc,operation, abnormalNo);
String routerBo = splitSfcDto.getRouterBo();
String ncCode = splitSfcDto.getNcCode();
if (StringUtil.isBlank(routerBo)){
@ -237,7 +247,7 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> i
splitSfc.setCreatedDateTime(LocalDateTime.now());
save(splitSfc);
String workCenterBo = shopOrderService.getById(HandleEnum.SHOP_ORDER.getHandle(site, sfcData.getShopOrder())).getPlannedWorkCenterBo();
sfcDispatchCommonService.saveSfcDispatch(site,CommonMethods.getUser(),StringUtil.trimHandle(workCenterBo),newSfc, sfcData.getShopOrder(),routerBo);
sfcDispatchCommonService.saveSfcDispatch(site,CommonMethods.getUser(),StringUtil.trimHandle(workCenterBo),newSfc, sfcData.getShopOrder(),maxRevisionRouter.getHandle());
return splitSfc;
} catch (Exception e) {
ExceptionUtil.throwException(e);

@ -431,12 +431,12 @@
</delete>
<!-- BaseMapper标准查询/修改/删除 -->
<select id="generatorWord" resultType="hashmap">
SELECT DISTINCT WC.WORK_CENTER WORK_CENTER,WO.VALUE WORK_ORDER,WO2.VALUE DWG_NO,ZSS.QTY QTY,ZSS.OPERATION OPERATION,
ZSS.REASON REASON,ZSS."TYPE" "TYPE",
CASE WHEN I1.VALUE != NULL THEN I1.VALUE * I.QTY_MULTIPLIER
WHEN I2.VALUE != NULL THEN I2.VALUE * I.QTY_MULTIPLIER
ELSE I.QTY_MULTIPLIER END WEIGHT,I.ITEM ITEM,S.SFC SFC,it.DESCRIPTION ITEM_DESCRIPTION,
SO.SHOP_ORDER SHOP_ORDER
SELECT DISTINCT NVL(WC.WORK_CENTER,' ') WORK_CENTER,NVL(WO.VALUE,' ') WORK_ORDER,NVL(WO2.VALUE,' ') DWG_NO,NVL(ZSS.QTY,0) QTY,NVL(ZSS.OPERATION,' ') OPERATION,
NVL(ZSS.REASON,' ') REASON,NVL(ZSS."TYPE",' ') "TYPE",
CASE WHEN I1.VALUE != NULL THEN NVL(I1.VALUE * I.QTY_MULTIPLIER,0)
WHEN I2.VALUE != NULL THEN NVL(I2.VALUE * I.QTY_MULTIPLIER,0)
ELSE NVL(I.QTY_MULTIPLIER,0) END WEIGHT,NVL(I.ITEM,' ') ITEM,NVL(S.SFC,' ') SFC,NVL(it.DESCRIPTION,' ') ITEM_DESCRIPTION,
NVL(SO.SHOP_ORDER,' ') SHOP_ORDER
FROM
SHOP_ORDER SO
LEFT JOIN WORK_CENTER WC ON SO.PLANNED_WORK_CENTER_BO = WC.HANDLE

@ -380,7 +380,7 @@
<select id="getAbnormalQty" resultType="com.foreverwin.mesnac.production.dto.SplitSfcDto">
SELECT zab.NC_QTY,zsbd.ROUTER_BO,zab.NC_CODE,zab.ABNORMAL_NO FROM Z_ABNORMAL_BILL zab
JOIN Z_ABNORMAL_BILL_DISPOSE zsbd ON zab.HANDLE=ZSBD.ABNORMAL_BILL_BO
WHERE ZAB.SFC=#{sfc} AND zab.SITE=#{site} AND ZAB.OPERATION=#{operation} AND zab.STATUS='G' AND zab."TYPE"='Z' AND (zsbd.ABNORMAL_METHOD='F' OR zsbd.ABNORMAL_METHOD='C')
WHERE ZAB.SFC=#{sfc} AND zab.ABNORMAL_NO=#{abnormalNo} AND zab.SITE=#{site} AND ZAB.OPERATION=#{operation} AND zab.STATUS='G' AND zab."TYPE"='Z' AND (zsbd.ABNORMAL_METHOD='F' OR zsbd.ABNORMAL_METHOD='C')
</select>
</mapper>

Loading…
Cancel
Save