产前准备PDA

master
philip 4 years ago
parent aaed4b87c6
commit ce9152b5e2

@ -34,14 +34,27 @@ public class ProdReadyTaskController {
* @return
*/
@ResponseBody
@GetMapping("/doPrint")
public R doPrint(ProdReadyTask prodReadyTask){
@PostMapping("/doPrint")
public R doPrint(@RequestBody List<ProdReadyTask> list){
for (ProdReadyTask prodReadyTask:list){
prodReadyTask = prodReadyTaskService.getById(prodReadyTask.getHandle());
String result = prodReadyTask.getResult();
if (StringUtil.isBlank(result) || !prodReadyTask.getResult().equals(Constants.RSESULT_OK)){
throw new BaseException("未准备合格不能打印");
}
prodReadyTaskService.doPrint(prodReadyTask);
}
return R.ok();
}
/**
*
*
* @return
*/
@ResponseBody
@PostMapping("/doListReady")
public R doListReady(@RequestBody List<ProdReadyTask> list){
prodReadyTaskService.doReadyList(list);
return R.ok();
}
/**
@ -108,6 +121,18 @@ public class ProdReadyTaskController {
result = prodReadyTaskService.loadProExecute(taskBo);
return R.ok(result);
}
/**
* PDA
*
* @return
*/
@ResponseBody
@GetMapping("/loadTaskExecute")
public R loadTaskExecute(String taskBo){
Map<String, Object> result;
result = prodReadyTaskService.loadTaskExecute(taskBo);
return R.ok(result);
}
/**
*
*
@ -121,6 +146,18 @@ public class ProdReadyTaskController {
return R.ok(result);
}
/**
*
*
* @return
*/
@ResponseBody
@PostMapping("/pdaSave")
public R savePdaResult(@RequestBody ProdReadyTask prodReadyTask){
prodReadyTaskService.savePdaResult(prodReadyTask);
return R.ok();
}
/**
*
*

@ -167,6 +167,15 @@ public class ProdReadyTask extends Model<ProdReadyTask> {
@TableField(exist = false)
private String itemDesc;
@TableField(exist = false)
private String lastOperation;
@TableField(exist = false)
private String lastOperationStatus;
@TableField(exist = false)
private String employeeDescription;
@TableField(exist = false)
private List<ProdReadyTaskDetail> prodReadyTaskDetailList;
@ -181,6 +190,30 @@ public class ProdReadyTask extends Model<ProdReadyTask> {
this.prodReadyTaskDetailList = prodReadyTaskDetailList;
}
public String getEmployeeDescription() {
return employeeDescription;
}
public void setEmployeeDescription(String employeeDescription) {
this.employeeDescription = employeeDescription;
}
public String getLastOperation() {
return lastOperation;
}
public void setLastOperation(String lastOperation) {
this.lastOperation = lastOperation;
}
public String getLastOperationStatus() {
return lastOperationStatus;
}
public void setLastOperationStatus(String lastOperationStatus) {
this.lastOperationStatus = lastOperationStatus;
}
public String getDispatchNo() {
return dispatchNo;
}

@ -41,4 +41,10 @@ public interface ProdReadyTaskService extends IService<ProdReadyTask> {
void doPrint(ProdReadyTask prodReadyTask);
void sendMsgJob(String site);
void doReadyList(List<ProdReadyTask> list);
Map<String, Object> loadTaskExecute(String taskBo);
void savePdaResult(ProdReadyTask prodReadyTask);
}

@ -15,6 +15,8 @@ import com.foreverwin.mesnac.common.service.InspectionItemService;
import com.foreverwin.mesnac.common.service.InspectionTaskDetailService;
import com.foreverwin.mesnac.common.service.InspectionTaskService;
import com.foreverwin.mesnac.common.util.StringUtil;
import com.foreverwin.mesnac.meapi.model.Sfc;
import com.foreverwin.mesnac.meapi.service.SfcService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
@ -37,7 +39,8 @@ import java.util.*;
@Service
@Transactional(rollbackFor = Exception.class)
public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper, InspectionTask> implements InspectionTaskService {
@Autowired
private SfcService sfcService;
@Autowired
private InspectionTaskMapper inspectionTaskMapper;
@Autowired
@ -155,8 +158,8 @@ public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper,
String category = (String) paramMap.get("CATEGORY");
//产品批次
String sfc = (String) paramMap.get("SFC");
//产品批次
String shopOrder = (String) paramMap.get("SHOP_ORDER");
Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfc));
String shopOrder = StringUtil.trimHandle(sfcServiceById.getShopOrderBo());
//工序
String operation = (String) paramMap.get("OPERATION");
//工序标识

@ -246,7 +246,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
if (list.size() > 0) {
ProdReadyTask prodReadyTask = list.get(0);
if (prodReadyTask.getStatus().equals(STATUS_CANCEL)) {
throw new BaseException("产前准备任务任务已取消");
throw new BaseException("产前准备任务已取消");
}
prodReadyTask.setStatus(STATUS_CANCEL);
LocalDateTime now = LocalDateTime.now();
@ -292,6 +292,84 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
return prodReadyTask;
}
@Override
public Map<String, Object> loadTaskExecute(String taskBo) {
Map<String, Object> returnMap=new HashMap<>();
ProdReadyTask prodReadyTask = prodReadyTaskMapper.selectById(taskBo);
String dispatchNo = StringUtil.trimHandle(prodReadyTask.getSfcDispatchBo());
String site = CommonMethods.getSite();
if (prodReadyTask.getStatus().equals(STATUS_NEW)) {
prodReadyTask.setReadyUser(CommonMethods.getUser());
prodReadyTask.setReadyDateTime(LocalDateTime.now());
prodReadyTask.setModifyUser(CommonMethods.getUser());
prodReadyTask.setModifiedDateTime(LocalDateTime.now());
prodReadyTask.setStatus(STATUS_DOING);
updateById(prodReadyTask);
}
LambdaQueryWrapper<ProdReadyTaskDetail> lambdaQuery = new LambdaQueryWrapper<>();
lambdaQuery.eq(ProdReadyTaskDetail::getProdReadyTaskBo, taskBo);
List<ProdReadyTaskDetail> list = prodReadyTaskDetailService.list(lambdaQuery);
List<Map<String, Object>> itemList = null;
List<Map<String, Object>> toolList = null;
List<Map<String, Object>> processControolList = null;
//物料接收数据
if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P01)).count()>0){
itemList = prodReadyTaskMapper.getItemDetail(site, LocaleContextHolder.getLocale().getLanguage(), dispatchNo);
}
//刀具
if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P02)).count()>0){
toolList = prodReadyTaskMapper.getToolDetail(site, LocaleContextHolder.getLocale().getLanguage(), dispatchNo);
}
//通过加工的零件号、设备类型、设备获取发布状态的工控程序
if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P03)).count()>0){
processControolList= new ArrayList<>();
SfcDispatchDto sfcdispatch = new SfcDispatchDto();
sfcdispatch.setHandle(HandleEnum.SFC_DISPATCH.getHandle(site, dispatchNo));
sfcdispatch = sfcDispatchCommonService.findSfcDispatchBySfc(sfcdispatch);
Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfcdispatch.getSfc()));
String itemBo = sfcServiceById.getItemBo();
JSONObject jsonObject = sendToDnc(StringUtil.trimHandle(itemBo), sfcdispatch.getResrce(), sfcdispatch.getResourceType());
Map<String, Object> map = new HashMap<>();
map.put("RESOURCE", sfcdispatch.getResrce());
map.put("RESOURCE_TYPE", sfcdispatch.getResourceType());
map.put("RESULT", jsonObject.get("RESULT"));
map.put("MESSAGE", jsonObject.get("MESSAGE"));
processControolList.add(map);
}
returnMap.put("itemList",itemList);
returnMap.put("cutterList",toolList);
returnMap.put("processControlList",processControolList);
return returnMap;
}
@Override
public void savePdaResult(ProdReadyTask prodReadyTask) {
String user = CommonMethods.getUser();
ProdReadyTask byId = getById(prodReadyTask.getHandle());
if (byId.getStatus().equals(STATUS_CANCEL)) {
throw new BaseException("产前准备任务已取消");
}
if (byId.getStatus().equals(STATUS_FINISH) && byId.getResult().equals(Constants.RSESULT_OK)) {
throw new BaseException("产前准备任务已完成");
}
List<ProdReadyTaskDetail> prodReadyTaskDetailList = prodReadyTask.getProdReadyTaskDetailList();
prodReadyTask.setStatus(STATUS_FINISH);
prodReadyTask.setCompleteUser(user);
prodReadyTask.setCompleteDateTime(LocalDateTime.now());
prodReadyTask.setModifyUser(user);
prodReadyTask.setModifiedDateTime(LocalDateTime.now());
updateById(prodReadyTask);
if (prodReadyTaskDetailList != null && prodReadyTaskDetailList.size() > 0) {
for (ProdReadyTaskDetail prodReadyTaskDetail : prodReadyTaskDetailList) {
String detailHandle = HandleEnum.PROD_READY_TASK_DETAIL.getHandle(prodReadyTask.getHandle(), prodReadyTaskDetail.getInspectionItem());
prodReadyTaskDetail.setHandle(detailHandle);
prodReadyTaskDetail.setModifyUser(user);
prodReadyTaskDetail.setModifiedDateTime(LocalDateTime.now());
prodReadyTaskDetailService.updateById(prodReadyTaskDetail);
}
}
}
@Override
public List<Map<String, Object>> getInspectionDetailList(Map<String, String> param) {
String type = param.get("type");
@ -327,10 +405,10 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
String user = CommonMethods.getUser();
ProdReadyTask byId = getById(prodReadyTask.getHandle());
if (byId.getStatus().equals(STATUS_CANCEL)) {
throw new BaseException("产前准备任务任务已取消");
throw new BaseException("产前准备任务已取消");
}
if (byId.getStatus().equals(STATUS_FINISH) && byId.getResult().equals(Constants.RSESULT_OK)) {
throw new BaseException("产前准备任务任务已完成");
throw new BaseException("产前准备任务已完成");
}
List<ProdReadyTaskDetail> prodReadyTaskDetailList = prodReadyTask.getProdReadyTaskDetailList();
prodReadyTask.setStatus(STATUS_FINISH);
@ -365,7 +443,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
String resrce = sfcDispatchDto.getResrce();
String printName = customFieldsService.getCustomFieldsValue(HandleEnum.RESOURCE.getHandle(site, resrce), CustomFieldConstant.RESRCE_CUSTOM_FIELD_PRINT_NAME);
if (StringUtil.isBlank(printName)) {
throw new BaseException("资源维护的打印机不能为空");
throw new BaseException("资源" + resrce + "维护的打印机不能为空");
}
String item = prodReadyTask.getItem();
Item selectCurrent = itemService.selectCurrent(site, item);
@ -529,6 +607,29 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl<ProdReadyTaskMapper, P
}
@Override
public void doReadyList(List<ProdReadyTask> list) {
String user = CommonMethods.getUser();
for (ProdReadyTask prodReadyTask : list) {
prodReadyTask = getById(prodReadyTask.getHandle());
String result = prodReadyTask.getResult();
if (prodReadyTask.getStatus().equals(STATUS_CANCEL)) {
throw new BaseException("产品条码" + prodReadyTask.getSfc() + "产前准备任务已取消");
}
if (StringUtil.notBlank(result) && prodReadyTask.getResult().equals(Constants.RSESULT_OK)) {
throw new BaseException("产品条码" + prodReadyTask.getSfc() + "产前准备任务已完成");
}
prodReadyTask.setStatus(STATUS_FINISH);
prodReadyTask.setResult(Constants.RSESULT_OK);
prodReadyTask.setCompleteUser(user);
prodReadyTask.setCompleteDateTime(LocalDateTime.now());
prodReadyTask.setModifyUser(user);
prodReadyTask.setModifiedDateTime(LocalDateTime.now());
updateById(prodReadyTask);
}
}
public String formatMessage(ProdReadyTask prodReadyTask, String messageType, String site) {
//找到消息内容
String locale = LocaleContextHolder.getLocale().getLanguage();

@ -33,6 +33,9 @@
<result column="RESOURCE_TYPE" property="resourceType" />
<result column="RESRCE_DESC" property="resrceDesc" />
<result column="OPERATION_DESC" property="operationDesc" />
<result column="LAST_OPERATION" property="lastOperation" />
<result column="EMPLOYEE_DESCRIPTION" property="employeeDescription" />
<result column="LAST_OPERATION_STATUS" property="lastOperationStatus" />
</resultMap>
<!-- 通用查询结果列 -->
@ -628,14 +631,24 @@
</delete>
<!-- BaseMapper标准查询/修改/删除 -->
<select id="getTaskList" resultMap="BaseResultMap">
SELECT zprt.*,zsd.DISPATCH_NO,zsd.RESOURCE_TYPE,RES.DESCRIPTION RESRCE_DESC,ITT.DESCRIPTION ITEM_DESC,OT.DESCRIPTION OPERATION_DESC
SELECT PREZSD.EMPLOYEE_DESCRIPTION,CASE WHEN TO_NUMBER(zsd.DISPATCH_SEQ)=1 THEN NULL
WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '完成'
ELSE '未完成' END LAST_OPERATION_STATUS
,PREOT.DESCRIPTION LAST_OPERATION,zprt.*,zsd.DISPATCH_NO,zsd.RESOURCE_TYPE,RES.DESCRIPTION RESRCE_DESC,ITT.DESCRIPTION ITEM_DESC,OT.DESCRIPTION OPERATION_DESC
FROM Z_PROD_READY_TASK zprt
JOIN Z_SFC_DISPATCH zsd ON ZPRT.SFC_DISPATCH_BO=ZSD.HANDLE
LEFT JOIN Z_SFC_DISPATCH PREZSD ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1
JOIN OPERATION OP ON OP.OPERATION = zprt.OPERATION AND OP.SITE = zprt.SITE AND OP.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = OP.HANDLE AND OT.LOCALE =#{locale}
JOIN ITEM I ON zprt.ITEM = I.ITEM AND I.SITE = zprt.SITE AND I.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION PREOP ON PREOP.OPERATION = zsd.PREPOSITION_OPERATION AND OP.SITE = zprt.SITE AND OP.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T PREOT ON PREOT.OPERATION_BO = PREOP.HANDLE AND OT.LOCALE =#{locale}
LEFT JOIN ITEM_T ITT ON ITT.ITEM_BO = I.HANDLE AND ITT.LOCALE =#{locale}
JOIN RESRCE RES ON RES.RESRCE = zprt.RESRCE AND RES.SITE = zprt.SITE
JOIN SFC S ON S.SFC=ZSD.SFC AND S.SITE=ZSD.SITE
JOIN SFC_ROUTING SR ON SR.SFC_BO=S.HANDLE
JOIN SFC_ROUTER SR2 ON SR.HANDLE =SR2.SFC_ROUTING_BO AND SR2.IN_USE = 'true'
LEFT JOIN SFC_STEP SS ON SR2.HANDLE =SS.SFC_ROUTER_BO AND (SS.QTY_IN_QUEUE>0 or SS.QTY_IN_WORK>0)
WHERE ZPRT.SITE=#{entity.site}
<if test="admin == 0"> AND ZSD.EMPLOYEE LIKE '%${user}%' </if>
<if test="entity.workCenter!=null and entity.workCenter!='' "> AND ZPRT.WORK_CENTER=#{entity.workCenter}</if>
@ -650,6 +663,7 @@
<if test="entity.shopOrder!=null and entity.shopOrder!='' "> AND ZPRT.SHOP_ORDER=#{entity.shopOrder}</if>
<if test="entity.item!=null and entity.item!='' "> AND ZPRT.ITEM=#{entity.item}</if>
<if test="entity.planStartDate!=null and entity.planStartDate!='' "> AND TO_CHAR(ZSD.PLANNED_START_DATE,'YYYY-MM-DD')=#{entity.planStartDate}</if>
ORDER BY zprt.CREATED_DATE_TIME DESC
</select>
<select id="loadProExecute" resultMap="BaseResultMap">

Loading…
Cancel
Save