philip 3 years ago
commit 953da18829

@ -1,6 +1,8 @@
package com.foreverwin.mesnac.common.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONArray;
import com.foreverwin.mesnac.common.dto.LabelPrintDto;
import com.foreverwin.modular.core.exception.BusinessException;
import com.foreverwin.modular.core.util.R;
@ -122,6 +124,18 @@ public class PrintLogController {
return R.ok();
}
@ResponseBody
@PostMapping("/barcodeMaintenance")
public R barcodeMaintenance(@RequestBody Map<String,Object> map){
try {
//table列表里面的值
String str = JSONUtil.toJsonStr(map.get("printLogList"));
List<LabelPrintDto> labelPrintDtos = JSONArray.parseArray(str, LabelPrintDto.class);
printLogService.barcodeMaintenance(labelPrintDtos);
return R.ok();
} catch (Exception e) {
return R.failed(e.getMessage());
}
}
}

@ -43,4 +43,10 @@ public interface PrintLogService extends IService<PrintLog> {
LabelPrintDto findSfcPrintInfoBySfc(String sfc);
void sfcLabelPrint(Map<String,Object> map);
/**
* @Description
* @param printLogList,deleteTableList
*/
void barcodeMaintenance(List<LabelPrintDto> printLogList);
}

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.foreverwin.mesnac.common.constant.Constants;
import com.foreverwin.mesnac.common.dto.LabelPrintDto;
import com.foreverwin.mesnac.common.enums.HandleEnum;
import com.foreverwin.mesnac.common.model.PrintLog;
import com.foreverwin.mesnac.common.mapper.PrintLogMapper;
import com.foreverwin.mesnac.common.service.PrintLogService;
@ -163,6 +164,37 @@ public class PrintLogServiceImpl extends ServiceImpl<PrintLogMapper, PrintLog> i
}
}
@Override
public void barcodeMaintenance(List<LabelPrintDto> labelPrintDtos) {
for (LabelPrintDto labelPrintDto : labelPrintDtos) {
labelPrintDto.setLabel(labelPrintDto.getItem()+"*"+labelPrintDto.getBatch());
labelPrintDto.setPrintTemplate("INV");
labelPrintDto.setSite(CommonMethods.getSite());
labelPrintDto.setSupplier("CSH");
}
String site = CommonMethods.getSite();
List<PrintLog> list = new ArrayList();
for (int i =0;i<labelPrintDtos.size();i++) {
PrintLog printLog = new PrintLog();
printLog.setHandle(labelPrintDtos.get(i).getLabel());
printLog.setSite(site);
printLog.setCategory("INV");
printLog.setPrintTemplate("INV");
printLog.setInventory(labelPrintDtos.get(i).getLabel());
printLog.setItemBo(HandleEnum.ITEM.getHandle(site, labelPrintDtos.get(i).getItem(),"A"));
printLog.setIsPrint("false");
printLog.setPrintNum(0);
printLog.setCreateUser(CommonMethods.getUser());
printLog.setCreatedDateTime(LocalDateTime.now());
printLog.setPrintParam(JSON.toJSONString(labelPrintDtos.get(i)));
list.add(printLog);
}
printLogService.saveBatch(list);
}
public void printServer(List<LabelPrintDto> list){
// 超时时间180秒/3分钟
String post = HttpUtil.post(printServer, JSON.toJSONString(list), 180000);

@ -2,14 +2,18 @@ package com.foreverwin.mesnac.production.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
import com.foreverwin.mesnac.production.dto.AccessoryConsumDto;
import com.foreverwin.mesnac.production.model.AccessoryLog;
import com.foreverwin.mesnac.production.service.AccessoryLogService;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
import com.foreverwin.modular.core.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
*
@ -151,4 +155,44 @@ public class AccessoryLogController {
public R removeByIds(List<String> ids){
return R.ok(accessoryLogService.removeByIds(ids));
}
/**
* @Description 使
* @author limy
* @date 2022/1/11 14:51
* @param paramMap
* @return com.foreverwin.modular.core.util.R
*/
@GetMapping("/selectAccessory")
@ResponseBody
public R selectAccessory(@RequestParam(required = false)Map paramMap){
List<AccessoryConsumDto> list;
try {
paramMap.put("site", CommonMethods.getSite());
list = accessoryLogService.selectAccessory(paramMap);
} catch (Exception e) {
return R.failed(e.getMessage());
}
return R.ok(list);
}
/**
* @Description
* @author limy
* @date 2022/1/11 16:47
* @return com.foreverwin.modular.core.util.R
*/
@GetMapping("/getItems")
@ResponseBody
public R getItems(){
List<AccessoryConsumDto> list;
try {
list = accessoryLogService.getItems();
} catch (Exception e) {
return R.failed(e.getMessage());
}
return R.ok(list);
}
}

@ -0,0 +1,51 @@
package com.foreverwin.mesnac.production.dto;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
/**
* @author limy
* @date 20220111 10:29
*/
public class AccessoryConsumDto extends SfcDispatchDto {
//辅料编码
private String accessoryItem;
//辅料名称
private String accessoryDescription;
//辅料数量
private String accessoryQty;
//车间描述
private String workCenterDescription;
public String getWorkCenterDescription() {
return workCenterDescription;
}
public void setWorkCenterDescription(String workCenterDescription) {
this.workCenterDescription = workCenterDescription;
}
public String getAccessoryItem() {
return accessoryItem;
}
public void setAccessoryItem(String accessoryItem) {
this.accessoryItem = accessoryItem;
}
public String getAccessoryDescription() {
return accessoryDescription;
}
public void setAccessoryDescription(String accessoryDescription) {
this.accessoryDescription = accessoryDescription;
}
public String getAccessoryQty() {
return accessoryQty;
}
public void setAccessoryQty(String accessoryQty) {
this.accessoryQty = accessoryQty;
}
}

@ -1,11 +1,13 @@
package com.foreverwin.mesnac.production.mapper;
import com.foreverwin.mesnac.production.dto.AccessoryConsumDto;
import com.foreverwin.mesnac.production.model.AccessoryLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -19,4 +21,8 @@ import java.util.List;
public interface AccessoryLogMapper extends BaseMapper<AccessoryLog> {
List<AccessoryLog> getLabelList(@Param("site") String site,@Param("sfc") String sfc,@Param("stepId") String stepId);
List<AccessoryConsumDto> selectAccessory(Map<String,Object> map);
List<AccessoryConsumDto> getItems();
}

@ -1,11 +1,13 @@
package com.foreverwin.mesnac.production.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.foreverwin.mesnac.production.dto.AccessoryConsumDto;
import com.foreverwin.mesnac.production.model.AccessoryLog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -29,4 +31,8 @@ public interface AccessoryLogService extends IService<AccessoryLog> {
void loadConfirm(AccessoryLog accessoryLog);
List<AccessoryLog> getLoadLabelList(AccessoryLog accessoryLog);
List<AccessoryConsumDto> selectAccessory(Map map);
List<AccessoryConsumDto> getItems();
}

@ -12,6 +12,7 @@ import com.foreverwin.mesnac.meapi.model.Item;
import com.foreverwin.mesnac.meapi.model.Operation;
import com.foreverwin.mesnac.meapi.service.ItemService;
import com.foreverwin.mesnac.meapi.service.SfcService;
import com.foreverwin.mesnac.production.dto.AccessoryConsumDto;
import com.foreverwin.mesnac.production.mapper.AccessoryLogMapper;
import com.foreverwin.mesnac.production.model.AccessoryLog;
import com.foreverwin.mesnac.production.service.AccessoryLogService;
@ -24,7 +25,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
@ -125,5 +128,20 @@ public class AccessoryLogServiceImpl extends ServiceImpl<AccessoryLogMapper, Acc
return accessoryLogMapper.getLabelList(site,sfc,operationBySfcBo.getStepId());
}
@Override
public List<Map<String, Object>> listMaps() {
return null;
}
@Override
public List<AccessoryConsumDto> selectAccessory(Map map){
List<AccessoryConsumDto> list = accessoryLogMapper.selectAccessory(map);
return list;
}
@Override
public List<AccessoryConsumDto> getItems() {
return accessoryLogMapper.getItems();
}
}

@ -23,6 +23,33 @@
</resultMap>
<resultMap id="FullResultMap" type="com.foreverwin.mesnac.production.dto.AccessoryConsumDto">
<result column="USER" property="user" />
<result column="ROLE" property="role" />
<result column="IS_COMPLETED" property="isCompleted" />
<result column="ITEM_BO" property="itemBo" />
<result column="SFC" property="sfc" />
<result column="ITEM" property="item" />
<result column="STATUS_NAME" property="statusName" />
<result column="IS_MAJOR" property="isMajor" />
<result column="COMMENTS" property="comments" />
<result column="WORK_ORDER" property="workOrder" />
<result column="SHOP_ORDER_TYPE" property="shopOrderType" />
<result column="ITEM_DESCRIPTION" property="itemDescription" />
<result column="COMPONENT" property="component" />
<result column="COMPONENT_DESCRIPTION" property="componentDescription" />
<result column="TEXTURE" property="texture" />
<result column="MAT_SPEC" property="matSpec" />
<result column="COMPLETED_QTY" property="completedQty" />
<result column="RESOURCE_DESCRIPTION" property="resourceDescription" />
<result column="COMPONENT_DESCRIPTION" property="componentDescription" />
<result column="OPERATION_DESCRIPTION" property="operationDescription" />
<result column="RESOURCE_WORK_CENTER" property="resourceWorkCenter" />
<result column="ACCESSORY_ITEM" property="accessoryItem"/>
<result column="ACCESSORY_DESCRIPTION" property="accessoryDescription"/>
<result column="ACCESSORY_QTY" property="accessoryQty"/>
<result column="WORK_CENTER_DESCRIPTION" property="workCenterDescription"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
HANDLE, SITE, WORK_CENTER, SHOP_ORDER, SFC, OPERATION, STEP_ID, RESRCE, LABEL, BATCH, ITEM, REVISION, QTY, CREATE_USER, CREATED_DATE_TIME
@ -487,4 +514,138 @@
WHERE zal.sfc=#{sfc} AND zal.SITE=#{site} AND zal.STEP_ID=#{stepId}
ORDER BY zal.CREATED_DATE_TIME DESC
</select>
<select id="getItems" resultMap="FullResultMap">
SELECT DISTINCT(ZAL.ITEM) ACCESSORY_ITEM,IT.DESCRIPTION ACCESSORY_DESCRIPTION FROM Z_ACCESSORY_LOG ZAL
LEFT JOIN ITEM IM ON ZAL.ITEM = IM.ITEM
LEFT JOIN ITEM_T IT ON IM.HANDLE=IT.ITEM_BO
</select>
<select id="selectAccessory" resultMap="FullResultMap">
SELECT WIP.*
FROM (
SELECT WIP.*, V1.STEP_ID PREPOSITION_STEP_ID, V1.OPERATION PREPOSITION_OPERATION,
CASE WHEN WIP.DISPATCH_SEQ = 1 OR V1.DISPATCH_STATUS = 'COMPLETE' THEN N'是' ELSE N'否' END IS_COMPLETED,
CASE WHEN WIP.DISPATCH_STATUS = 'NEW' THEN N'新建' WHEN WIP.DISPATCH_STATUS = 'CANCEL' THEN N'取消'
WHEN WIP.DISPATCH_STATUS = 'PAUSE' THEN N'暂停' WHEN WIP.DISPATCH_STATUS = 'RELEASE' THEN N'发布'
END AS STATUS_NAME, 'ADMINISTRATOR' AS ROLE
FROM (
SELECT SD.HANDLE, SD.SITE, SD.SHOP_ORDER, SD.DISPATCH_NO, SD.ROUTER_BO, C2.VALUE ITEM_NUMBER, C1.VALUE WORK_ORDER, IM.HANDLE ITEM_BO, IM.ITEM, IT.DESCRIPTION ITEM_DESCRIPTION, SD.SFC, SD.DISPATCH_STATUS,SD.DRAWINGS_REVISION,
SD.STEP_ID, SD.OPERATION, OT.DESCRIPTION OPERATION_DESCRIPTION, SD.RESOURCE_TYPE, SD.RESRCE, SD.EMPLOYEE, SD.EMPLOYEE USER_NAME, SD.DISPATCH_QTY, SD.PROD_HOURS, RS.DESCRIPTION RESOURCE_DESCRIPTION,
CASE WHEN SD.DISPATCH_STATUS = 'COMPLETE' THEN SD.DISPATCH_QTY ELSE 0 END COMPLETED_QTY, SD.PLANNED_START_DATE, SD.PLANNED_COMP_DATE, SD.WORK_CENTER, SD.IS_DISPATCH, SD.EMPLOYEE_DESCRIPTION,
SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.DISPATCH_SEQ-1 BEFORE_SEQ, SD.DISPATCH_SEQ+1 AFTER_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE,
CASE WHEN CC.VALUE = '9' THEN N'是' ELSE N'否' END IS_MAJOR, CASE WHEN SD.TURN_OPERATION = 'true' THEN N'是' ELSE N'否' END TURN_OPERATION, SD.IS_UPDATE_ZJH_COMPLETE, SD.BLANKING_SIZE, MAX(BC.COMPONENT_GBO) COMPONENT_BO,
WR.WORK_CENTER RESOURCE_WORK_CENTER,WT.DESCRIPTION WORK_CENTER_DESCRIPTION, MAX(CP.ITEM) COMPONENT, MAX(CT.DESCRIPTION) COMPONENT_DESCRIPTION, MAX(C3.VALUE) TEXTURE, MAX(C4.VALUE) MAT_SPEC ,SD.OTHER_2,
ZAL.ITEM ACCESSORY_ITEM,NVL2(ZAL.ITEM, IT.DESCRIPTION, NULL) ACCESSORY_DESCRIPTION,ZAL.QTY ACCESSORY_QTY
FROM Z_SFC_DISPATCH SD
INNER JOIN SFC SC ON SC.SITE = SD.SITE AND SC.SFC = SD.SFC
LEFT JOIN RESRCE RS ON SD.SITE = RS.SITE AND SD.RESRCE = RS.RESRCE
INNER JOIN SHOP_ORDER SO ON SO.SITE = SD.SITE AND SO.SHOP_ORDER = SD.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS C1 ON C1.HANDLE = SO.HANDLE AND C1."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS C2 ON C2.HANDLE = SO.HANDLE AND C2."ATTRIBUTE" = 'ITEM_NUMBER'
INNER JOIN ITEM IM ON IM.HANDLE = SO.ITEM_BO
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = IM.HANDLE AND IT.LOCALE = 'zh'
LEFT JOIN CUSTOM_FIELDS CC ON CC.HANDLE = IM.HANDLE AND CC.ATTRIBUTE = 'ACCESSORY_TYPE'
INNER JOIN OPERATION O ON O.SITE = SD.SITE AND O.OPERATION = SD.OPERATION AND O.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
INNER JOIN SFC_BOM SB ON SB.SFC_BO = SC.HANDLE
INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO
LEFT JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO
LEFT JOIN ITEM_T CT ON CT.ITEM_BO = CP.HANDLE AND CT.LOCALE = 'zh'
LEFT JOIN CUSTOM_FIELDS C3 ON C3.HANDLE = CP.HANDLE AND C3.ATTRIBUTE = 'TEXTTURE'
LEFT JOIN CUSTOM_FIELDS C4 ON C4.HANDLE = CP.HANDLE AND C4.ATTRIBUTE = 'MAT_SPEC'
LEFT JOIN WORK_CENTER_MEMBER WCM ON WCM.WORK_CENTER_OR_RESOURCE_GBO = 'ResourceBO:' || SD.SITE || ',' || SD.RESRCE
LEFT JOIN WORK_CENTER WR ON WR.HANDLE = WCM.WORK_CENTER_BO
LEFT JOIN WORK_CENTER WR1 ON WR1.WORK_CENTER = SD.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WR1.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ACCESSORY_LOG ZAL ON ZAL.SFC = SD.SFC AND ZAL.SHOP_ORDER = SD.SHOP_ORDER AND ZAL.STEP_ID = SD.STEP_ID
WHERE SD.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND SD.OPERATION LIKE #{workCenter}||'%'
</if>
<if test="dispatchStatus != null and dispatchStatus != ''">
AND SD.DISPATCH_STATUS = #{dispatchStatus}
</if>
<if test="status != null and status != ''">
AND SD.DISPATCH_STATUS IN ${status}
</if>
<if test="item != null and item != ''">
AND IM.ITEM = #{item}
</if>
<if test="itemDescription !=null and itemDescription!=''">
AND IT.DESCRIPTION like '%' ||#{itemDescription}|| '%'
</if>
<if test="workOrder != null and workOrder != ''">
AND C1.VALUE LIKE '%' ||#{workOrder}|| '%'
</if>
<if test="itemNumber != null and itemNumber != ''">
AND C2.VALUE LIKE '%' ||#{itemNumber}|| '%'
</if>
<if test="shopOrder != null and shopOrder != ''">
AND SD.SHOP_ORDER = #{shopOrder}
</if>
<if test="resourceType != null and resourceType != ''">
AND SD.RESOURCE_TYPE = #{resourceType}
</if>
<if test="resrce != null and resrce != ''">
AND SD.RESRCE = #{resrce}
</if>
<if test="operation != null and operation != ''">
AND SD.OPERATION = #{operation}
</if>
<if test="operationDescription != null and operationDescription != ''">
AND OT.DESCRIPTION = #{operationDescription}
</if>
<if test="sfc != null and sfc != ''">
AND SD.SFC = #{sfc}
</if>
<if test="turnOperation != null and turnOperation != ''">
AND SD.TURN_OPERATION = #{turnOperation}
</if>
<if test="isDispatch != null and isDispatch != ''">
AND SD.IS_DISPATCH = #{isDispatch}
</if>
<if test="blankingSize != null and blankingSize != ''">
AND SD.BLANKING_SIZE LIKE '%'||#{blankingSize}||'%'
</if>
<if test="component != null and component != ''">
AND CP.ITEM = #{component}
</if>
<if test="componentDescription != null and componentDescription != ''">
AND CT.DESCRIPTION LIKE '%' || #{componentDescription} || '%'
</if>
<if test="texture != null and texture != ''">
AND C3.VALUE LIKE '%'|| #{texture} ||'%'
</if>
<if test="matSpec != null and matSpec != ''">
AND C4.VALUE = #{matSpec}
</if>
<if test="startFromDate != null">
AND SD.ACTUAL_START_DATE >= TO_DATE(#{startFromDate}, 'YYYY-MM-DD')
</if>
<if test="startToDate != null">
AND SD.ACTUAL_START_DATE &lt;= TO_DATE(#{startToDate}|| '23:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="completeFromDate != null">
AND SD.ACTUAL_COMPLETE_DATE >= TO_DATE(#{completeFromDate}, 'YYYY-MM-DD')
</if>
<if test="completeToDate != null">
AND SD.ACTUAL_COMPLETE_DATE &lt;= TO_DATE(#{completeToDate}|| '23:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="accessory != null and accessory != ''">
AND ZAL.ITEM = #{accessory}
</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, SD.DISPATCH_QTY, SD.PROD_HOURS, RS.DESCRIPTION,
SD.DISPATCH_STATUS, SD.DISPATCH_QTY, SD.PLANNED_START_DATE, SD.PLANNED_COMP_DATE, SD.WORK_CENTER, SD.IS_DISPATCH, SD.EMPLOYEE_DESCRIPTION,
SD.ACTUAL_START_DATE, SD.ACTUAL_COMPLETE_DATE, SD.REMARK, SD.DISPATCH_SEQ, SD.EARLIEST_START_DATE, SD.LATEST_END_DATE,
CC.VALUE, SD.TURN_OPERATION,SD.IS_UPDATE_ZJH_COMPLETE, SD.BLANKING_SIZE, WR.WORK_CENTER ,SD.OTHER_2,ZAL.ITEM ,ZAL.QTY,WT.DESCRIPTION
) WIP
LEFT JOIN Z_SFC_DISPATCH V1 ON V1.SITE = WIP.SITE AND V1.SFC = WIP.SFC AND V1.ROUTER_BO = WIP.ROUTER_BO AND V1.DISPATCH_SEQ = WIP.BEFORE_SEQ
LEFT JOIN Z_SFC_DISPATCH V2 ON V2.SITE = WIP.SITE AND V2.SFC = WIP.SFC AND V2.ROUTER_BO = WIP.ROUTER_BO AND V2.DISPATCH_SEQ = WIP.AFTER_SEQ
) WIP
<if test="isCompleted != null and isCompleted != ''">
WHERE WIP.IS_COMPLETED = #{isCompleted}
</if>
ORDER BY WIP.SHOP_ORDER,WIP.SFC,WIP.STEP_ID,TO_NUMBER(WIP.DISPATCH_SEQ)
</select>
</mapper>

Loading…
Cancel
Save