Merge remote-tracking branch 'origin/master'

master
zpl 4 years ago
commit b4dfc53c14

@ -71,15 +71,15 @@ public class OperationWSClient {
if (StringUtil.notEmpty(status)) {
status = status.substring(0, status.indexOf(":"));
String statusRef = "StatusBO:" + site + "," + "201";
if ("201".equalsIgnoreCase(status)) {
if ("201".equalsIgnoreCase(status) || "1".equals(status)) {
statusRef = "StatusBO:" + site + "," + "201";
} else if ("202".equalsIgnoreCase(status)) {
statusRef = "StatusBO:" + site + "," + "202";
} else if ("203".equalsIgnoreCase(status)) {
statusRef = "StatusBO:" + site + "," + "203";
} else if ("204".equalsIgnoreCase(status)) {
} else if ("204".equalsIgnoreCase(status) || "2".equals(status)) {
statusRef = "StatusBO:" + site + "," + "204";
} else if ("205".equalsIgnoreCase(status)) {
} else if ("205".equalsIgnoreCase(status) || "0".equals(status)) {
statusRef = "StatusBO:" + site + "," + "205";
}
request.setStatusRef(statusRef);

@ -79,6 +79,12 @@ public class UserResourceHandler extends BaseHandler {
@Override
public int visit(long index, JSONObject jsonObject) {
Object[] params = new Object[10];
params[0] = index;
params[1] = jsonObject.getString("resrce");
String resultMessage = null;
LocalDateTime now = LocalDateTime.now();
String user = CommonMethods.getUser();
String resrce = StringUtil.toString(jsonObject.getString("resrce"));
@ -95,13 +101,13 @@ public class UserResourceHandler extends BaseHandler {
// userResource.setResrceDescription(resrceDescription);
userResource.setUserId(userId);
userResource.setUserDescription(userDescription);
if("Y".equals(temporaryUser)){
if("".equals(temporaryUser)){
userResource.setTemporaryUser("true");
}else {
userResource.setTemporaryUser("false");
}
if("N".equals(status)){
if("".equals(status)){
userResource.setStatus("false");
}else {
userResource.setStatus("true");
@ -115,19 +121,23 @@ public class UserResourceHandler extends BaseHandler {
}
userResource.setModifiedUser(user);
userResource.setModifiedDateTime(now);
try {
//如果资源为空或者员工编号为空,则直接跳过
if (StringUtil.notEmpty(resrce) && StringUtil.notEmpty(userId)) {
//站点
jsonObject.put("site", site);
//不管用户选啥模式,都是更新和插入
this.updateAndInsert(userResource,index);
userResourceService.saveOrUpdate(userResource);
//如果资源为空或者员工编号为空,则直接跳过
if (StringUtil.notEmpty(resrce) && StringUtil.notEmpty(userId)) {
//站点
jsonObject.put("site", site);
//不管用户选啥模式,都是更新和插入
resultMessage = this.updateAndInsert(userResource,index);
if (resultMessage != null) {
params[2] = resultMessage;
failedNumber[0]++;
buffer.append("第" + index + "行:" + I18nUtil.getI18nText("MaterData.import.update.fail", params) + "\n");
return 0;
}
userResourceService.saveOrUpdate(userResource);
return 1;
} catch (Exception e) {
throw BusinessException.build(e.getMessage());
}
return 0;
}
@Override
@ -135,12 +145,12 @@ public class UserResourceHandler extends BaseHandler {
return null;
}
boolean updateAndInsert(UserResource userResource,Long index){
String updateAndInsert(UserResource userResource,Long index){
//判断资源是否存在
Resrce resrce = resrceMapper.selectById(userResource.getResourceBo());
if(resrce == null){
throw BusinessException.build("第"+index+"行的资源不存在");
return "第"+index+"行的资源不存在";
}
//设置资源描述
userResource.setResrceDescription(resrce.getDescription());
@ -151,9 +161,9 @@ public class UserResourceHandler extends BaseHandler {
}else if("true".equals(userResource.getTemporaryUser())){
//不做任何操作
}else{
throw BusinessException.build("第"+index+"行的用户不存在,必须为临时员工");
return "第"+index+"行的用户不存在,必须为临时员工";
}
return true;
return null;
}
};

@ -177,6 +177,7 @@ public class MasterObjectDefine {
break;
case "USER_RESOURCE":
cvsHeadsMapping = new HashMap<>();
cvsHeadsMapping.put("resrce","资源编码");
cvsHeadsMapping.put("resrceDescription","资源描述");
cvsHeadsMapping.put("userId","员工编号");

@ -153,10 +153,10 @@ public class UserResourceController {
@ResponseBody
@GetMapping("/findEmployeeList")
public R findEmployeeList(String resource) {
public R findEmployeeList() {
try {
String site = CommonMethods.getSite();
return R.ok(userResourceService.findEmployeeList(site, resource));
return R.ok(userResourceService.findEmployeeList(site));
} catch (Exception e) {
return R.failed(e.getMessage());
}

@ -18,5 +18,5 @@ import java.util.List;
@Repository
public interface SurplusInventoryMapper extends BaseMapper<SurplusInventory> {
List<SurplusInventory> selectSurplusLWList(@Param("site") String site, @Param("inventory") String inventory);
}

@ -20,7 +20,7 @@ import java.util.List;
@Repository
public interface UserResourceMapper extends BaseMapper<UserResource> {
List<NwaUser> findEmployeeList(@Param("site") String site, @Param("resource") String resource);
List<NwaUser> findEmployeeList(@Param("site") String site);
List<UserResource> findEnableList(@Param("site") String site, @Param("resource") String resource, @Param("user") String user);

@ -1,9 +1,7 @@
package com.foreverwin.mesnac.dispatch.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.dispatch.model.SurplusInventory;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.List;
@ -18,11 +16,11 @@ import java.util.List;
public interface SurplusInventoryService extends IService<SurplusInventory> {
/**
*
* @param frontPage
*
*
* @param site
* @param inventory
* @return
*/
IPage<SurplusInventory> selectPage(FrontPage<SurplusInventory> frontPage, SurplusInventory surplusInventory);
List<SurplusInventory> selectList(SurplusInventory surplusInventory);
List<SurplusInventory> selectSurplusLWList(String site, String inventory);
}

@ -20,16 +20,7 @@ import java.util.List;
*/
public interface UserResourceService extends IService<UserResource> {
/**
*
* @param frontPage
* @return
*/
IPage<UserResource> selectPage(FrontPage<UserResource> frontPage, UserResource userResource);
List<UserResource> selectList(UserResource userResource);
List<NwaUser> findEmployeeList(String site, String resource);
List<NwaUser> findEmployeeList(String site);
List<UserResource> findEnableList(String site, String resource, String user);

@ -72,7 +72,7 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
public BigDecimal getInvIssueQty(String site, String inventory) {
BigDecimal qty = issueItemMapper.selectInvIssueQty(site, inventory);
return qty = qty == null ? BigDecimal.ZERO : qty;
return (qty == null ? BigDecimal.ZERO : qty);
}
@Override
@ -122,10 +122,10 @@ public class IssueItemServiceImpl extends ServiceImpl<IssueItemMapper, IssueItem
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//查询余料长宽
if (oddments && StringUtil.notBlank(inventory)) {
Map<String, Object> queryMap = new HashMap<>();
queryMap.put(SurplusInventory.SITE, site);
queryMap.put(SurplusInventory.PARENT_INVENTORY, inventory);
List<SurplusInventory> list = (List<SurplusInventory>) surplusInventoryService.listByMap(queryMap);
List<SurplusInventory> list = surplusInventoryService.selectSurplusLWList(site, inventory);
if (list == null || list.size() <= 0) {
throw BusinessException.build("物料条码【" +inventory+ "】没有可用余料");
}
map.put("wlList", list);
}

@ -41,7 +41,7 @@ public class ItemBatchServiceImpl extends ServiceImpl<ItemBatchMapper, ItemBatch
queryMap.put(ItemBatch.SITE, site);
queryMap.put(ItemBatch.ITEM, item);
if (StringUtil.notBlank(batch)) {
queryMap.put(ItemBatch.BATCH, batch);
queryMap.put(ItemBatch.LABEL, batch);
}
return itemBatchMapper.selectByMap(queryMap);

@ -316,14 +316,14 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
//查询所有资源类型与资源关系
List<Map<String, Object>> resourceList = resourceService.getResourceTypeResourceList(site);
if (resourceList == null || resourceList.size() <= 0) {
throw BusinessException.build("资源与资源类型关系数据未维护");
throw BusinessException.build("资源与资源类型关系数据未维护");
}
Map<String, List<Map<String, Object>>> map = resourceList.stream().collect(Collectors.groupingBy(item -> (String)item.get("RESRCE")));
//员工资源对应关系
List<UserResource> userResourceList = userResourceService.findEnableList(site, null, null);
if (userResourceList == null || userResourceList.size() <= 0) {
throw BusinessException.build("员工与资源关系没有维护");
throw BusinessException.build("员工与资源关系主数据未维护");
}
Map<String, List<UserResource>> usMap = userResourceList.stream().collect(Collectors.groupingBy(UserResource::getUserId));
@ -428,8 +428,8 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
}
//校验操作者与资源是否匹配
String employee = sfcDispatchDto.getUserName();
if (StringUtil.notBlank(employee)) {
String employees = sfcDispatchDto.getUserName();
if (StringUtil.notBlank(employees)) {
//资源、计划时间必输
if (StringUtils.isBlank(resource)) {
flag = false;
@ -438,31 +438,45 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
continue;
}
List<UserResource> singleUserResourceList = usMap.get(employee);
if (singleUserResourceList == null || singleUserResourceList.size() <= 0) {
flag = false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("派工单[" + dispatchNo + "]分配的操作者[" + employee + "]没有维护资源关系");
continue;
//派工人员为多个
String [] employeeArray = new String[]{};
if (!employees.contains(",")) {
employeeArray[0] = employees;
} else {
employeeArray = employees.split(",");
}
Boolean isMatch = false;
for (int i = 0; i < singleUserResourceList.size(); i++) {
UserResource userResource = singleUserResourceList.get(i);
if (resource.equals(userResource.getResrce())) {
isMatch = true; break;
for (int m = 0; m < employeeArray.length; m++) {
String employee = employeeArray[m];
List<UserResource> singleUserResourceList = usMap.get(employee);
if (singleUserResourceList == null || singleUserResourceList.size() <= 0) {
flag = false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("派工单[" + dispatchNo + "]分配的操作者[" + employee + "]没有维护资源关系");
continue;
}
Boolean isMatch = false;
for (int i = 0; i < singleUserResourceList.size(); i++) {
UserResource userResource = singleUserResourceList.get(i);
if (resource.equals(userResource.getResrce())) {
isMatch = true;
break;
}
}
if (!isMatch) {
flag = false;
message.append(seq++ % 3 == 0 ? "\n" : "| |");
message.append("派工单[" + dispatchNo + "]分配的操作员[" + employee + "]与资源[" + resource + "]不匹配");
continue;
}
}
if (!isMatch) {
flag = false;
message.append(seq++%3 == 0 ? "\n" : "| |");
message.append("派工单[" + dispatchNo + "]分配的操作员[" + employee + "]与资源[" + resource +"]不匹配");
continue;
}
}
sfcDispatch.setResrce(resource);
sfcDispatch.setEmployee(employee);
sfcDispatch.setEmployee(employees);
sfcDispatch.setRemark(sfcDispatchDto.getRemark());
sfcDispatch.setBlankingSize(sfcDispatchDto.getBlankingSize());
sfcDispatch.setPlannedStartDate(sfcDispatchDto.getPlannedStartDate());

@ -29,16 +29,7 @@ public class SurplusInventoryServiceImpl extends ServiceImpl<SurplusInventoryMap
private SurplusInventoryMapper surplusInventoryMapper;
@Override
public IPage<SurplusInventory> selectPage(FrontPage<SurplusInventory> frontPage, SurplusInventory surplusInventory) {
QueryWrapper<SurplusInventory> queryWrapper = new QueryWrapper<>();
queryWrapper.setEntity(surplusInventory);
return super.page(frontPage.getPagePlus(), queryWrapper);
}
@Override
public List<SurplusInventory> selectList(SurplusInventory surplusInventory) {
QueryWrapper<SurplusInventory> queryWrapper = new QueryWrapper<>();
queryWrapper.setEntity(surplusInventory);
return super.list(queryWrapper);
public List<SurplusInventory> selectSurplusLWList(String site, String inventory) {
return surplusInventoryMapper.selectSurplusLWList(site, inventory);
}
}

@ -150,6 +150,7 @@ public class SurplusReturnServiceImpl extends ServiceImpl<SurplusReturnMapper, S
surplusInventoryModel.setInventory(surplusInventory);
surplusInventoryModel.setLenght(length);
surplusInventoryModel.setWidth(width);
surplusInventoryModel.setQty(qty);
surplusInventoryModel.setItemBo(inventoryModel.getItemBo());
surplusInventoryModel.setCreateUser(user);
surplusInventoryModel.setCreatedDateTime(dateTime);
@ -159,6 +160,7 @@ public class SurplusReturnServiceImpl extends ServiceImpl<SurplusReturnMapper, S
} else {
surplusInventoryModel.setModifyUser(user);
surplusInventoryModel.setModifiedDateTime(dateTime);
surplusInventoryModel.setQty(surplusInventoryModel.getQty().add(qty));
surplusInventoryService.updateById(surplusInventoryModel);
}

@ -46,22 +46,8 @@ public class UserResourceServiceImpl extends ServiceImpl<UserResourceMapper, Use
private NwaUserService nwaUserService;
@Override
public IPage<UserResource> selectPage(FrontPage<UserResource> frontPage, UserResource userResource) {
QueryWrapper<UserResource> queryWrapper = new QueryWrapper<>();
queryWrapper.setEntity(userResource);
return super.page(frontPage.getPagePlus(), queryWrapper);
}
@Override
public List<UserResource> selectList(UserResource userResource) {
QueryWrapper<UserResource> queryWrapper = new QueryWrapper<>();
queryWrapper.setEntity(userResource);
return super.list(queryWrapper);
}
@Override
public List<NwaUser> findEmployeeList(String site, String resource) {
return userResourceMapper.findEmployeeList(site, resource);
public List<NwaUser> findEmployeeList(String site) {
return userResourceMapper.findEmployeeList(site);
}
@Override

@ -430,4 +430,17 @@
</foreach>)
</delete>
<!-- BaseMapper标准查询/修改/删除 -->
<select id="selectSurplusLWList" resultMap="BaseResultMap">
SELECT L.SITE, L.PARENT_INVENTORY, L.ITEM_BO, L.LENGHT, WIDTH
FROM Z_SURPLUS_INVENTORY L
LEFT JOIN (
SELECT SITE, ITEM, INVENTORY, SUM(QTY) ISSUE_QTY
FROM Z_ISSUE_ITEM
GROUP BY SITE, ITEM, INVENTORY
) F ON L.SITE = F.SITE AND L.INVENTORY = F.INVENTORY
WHERE L.SITE = #{site} AND L.PARENT_INVENTORY = #{inventory}
AND (F.ISSUE_QTY IS NULL OR L.QTY-F.ISSUE_QTY > 0 )
GROUP BY L.SITE, L.PARENT_INVENTORY, L.ITEM_BO, L.LENGHT, L.WIDTH
</select>
</mapper>

@ -465,10 +465,10 @@
</select>
<select id="findEmployeeList" resultType="com.foreverwin.mesnac.meapi.model.NwaUser">
SELECT A.SITE, A.USER_ID USER_NAME, B.FIRST_NAME, B.LAST_NAME, NVL(B.FULL_NAME, A.USER_DESCRIPTION) FULL_NAME
SELECT DISTINCT A.SITE, A.USER_ID USER_NAME, B.FIRST_NAME, B.LAST_NAME, NVL(B.FULL_NAME, A.USER_DESCRIPTION) FULL_NAME
FROM Z_USER_RESOURCE A
LEFT JOIN Z_NWA_USER B ON A.SITE = B.SITE AND A.USER_ID = B.USER_NAME
WHERE A.SITE = #{site} AND A.RESRCE = #{resource}
WHERE A.SITE = #{site}
</select>
<select id="findAll" resultMap="UserResourceDto">

@ -468,7 +468,7 @@ public class InterfaceServiceImpl implements InterfaceService {
ChangeProductionServiceInterface changeProductionService = MEServices.create("com.sap.me.production", "ChangeProductionService", site);
//工单编号作为工艺路线编号
String shopOrder = routerSyncRequest.getSHOP_ORDER();
String shopOrder = routerSyncRequest.getSHOP_ORDER().trim();
String router = shopOrder;
if (StringUtil.isBlank(router)) {
throw BusinessException.build("工单编号不能为空");
@ -515,6 +515,11 @@ public class InterfaceServiceImpl implements InterfaceService {
for (int i = 0; i < routerStepDtoList.size(); i++) {
RouterStepDto routerStepDto = routerStepDtoList.get(i);
String stepId = routerStepDto.getSTEP_ID();
String erpWorkCenter = routerStepDto.getOPERATION().trim();
if (StringUtil.isBlank(erpWorkCenter)) {
throw BusinessException.build("步骤标识【" +stepId+ "】下ERP工作中心不能为空");
}
if (StringUtil.isBlank(entryRouterStep)) {
entryRouterStep = stepId;
}
@ -533,10 +538,9 @@ public class InterfaceServiceImpl implements InterfaceService {
* 2.MES=_ERP
* 3.MES=MES
*/
String erpWorkCenter = routerStepDto.getOPERATION();
Operation operationModel = operationService.queryOperationByErpWorkCenter(site, erpWorkCenter);
if (operationModel == null) {
throw BusinessException.build("ERP工作中心【" +erpWorkCenter+"】对应的MES工序未维护");
throw BusinessException.build("步骤标识【" +stepId+ "】下ERP工作中心【" +erpWorkCenter+"】对应的MES工序未维护");
}
String operation = operationModel.getOperation();
String operationBo = operationModel.getHandle();

@ -1,5 +1,6 @@
package com.foreverwin.mesnac.meapi.controller;
import com.foreverwin.mesnac.meapi.util.StringUtils;
import com.foreverwin.modular.core.util.R;
import com.foreverwin.modular.core.util.FrontPage;
import com.foreverwin.modular.core.util.CommonMethods;
@ -11,6 +12,8 @@ import org.springframework.web.bind.annotation.*;
import com.foreverwin.mesnac.meapi.service.ResrceService;
import com.foreverwin.mesnac.meapi.model.Resrce;
import java.util.ArrayList;
import java.util.List;
/**
@ -174,4 +177,25 @@ public class ResrceController {
return R.ok(resrceService.findResourceAndWorkCenterByResource(resrce));
}
@GetMapping("/getResourceListByUT")
public R getResourceListByUT(String user, String resourceType) {
List<Resrce> result;
try {
String site = CommonMethods.getSite();
String [] userArray = new String[]{};
if (StringUtils.notBlank(user)) {
if (user.contains(",")) {
userArray = user.split(",");
} else {
userArray[0] = user;
}
}
result = resrceService.getResourceListByUT(site, resourceType, userArray);
} catch (Exception e) {
return R.failed(e.getMessage());
}
return R.ok(result);
}
}

@ -40,4 +40,5 @@ public interface ResrceMapper extends BaseMapper<Resrce> {
ResrceWorkCenter findResourceAndWorkCenterByResource(Resrce resrce);
List<Resrce> selectResourceListByUT(@Param("site") String site, @Param("resourceType") String resourceType, @Param("userList") String[] userList);
}

@ -78,4 +78,13 @@ public interface ResrceService extends IService<Resrce> {
*/
ResrceWorkCenter findResourceAndWorkCenterByResource(Resrce resrce);
/**
*
*
* @param site
* @param resourceType
* @param userList
* @return
*/
List<Resrce> getResourceListByUT(String site, String resourceType, String[] userList);
}

@ -95,5 +95,10 @@ public class ResrceServiceImpl extends ServiceImpl<ResrceMapper, Resrce> impleme
return resrceMapper.findResourceAndWorkCenterByResource(resrce);
}
@Override
public List<Resrce> getResourceListByUT(String site, String resourceType, String[] userList) {
return resrceMapper.selectResourceListByUT(site, resourceType, userList);
}
}

@ -598,5 +598,16 @@
WHERE R.RESRCE = #{resrce} AND R.SITE = #{site}
</select>
<select id="selectResourceListByUT" resultMap="BaseResultMap">
SELECT DISTINCT RS.HANDLE, RS.SITE, RS.RESRCE, RS.DESCRIPTION, RS.STATUS_BO, RS.PROCESS_RESOURCE, RS.OPERATION_BO, RS.VALID_FROM, RS.VALID_TO, RS.SETUP_STATE, RS.SETUP_DESCRIPTION, RS.CNC_MACHINE, RS.PENDING_STATUS_BO, RS.PENDING_REASON_CODE_BO, RS.PENDING_RESOURCE_RC_BO, RS.PENDING_COMMENTS, RS.CREATED_DATE_TIME, RS.MODIFIED_DATE_TIME, RS.ERP_PLANT_MAINT_ORDER, RS.ERP_EQUIPMENT_NUMBER, RS.ERP_INTERNAL_ID, RS.ERP_CAPACITY_CATEGORY
FROM RESRCE RS
INNER JOIN RESOURCE_TYPE_RESOURCE RTR ON RTR.RESOURCE_BO = RS.HANDLE
INNER JOIN RESOURCE_TYPE RT ON RT.HANDLE = RTR.RESOURCE_TYPE_BO
INNER JOIN Z_USER_RESOURCE ZR ON ZR.RESOURCE_BO = RS.HANDLE AND ZR.STATUS = 'true'
WHERE RT.SITE = #{site} AND RT.RESOURCE_TYPE = #{resourceType}
AND ZR.USER_ID IN
<foreach collection="userList" item="item" open="(" close=")" separator="," >
#{item}
</foreach>
</select>
</mapper>

Loading…
Cancel
Save