# Conflicts:
#	zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ProductIntoServiceImpl.java
This commit is contained in:
郭飞 2025-03-24 08:49:25 +08:00
commit 4a261b8774
47 changed files with 1061 additions and 118 deletions

View File

@ -37,6 +37,11 @@
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version> <!-- 根据实际版本调整 -->
</dependency>
<dependency>
<groupId>com.alibaba</groupId>

View File

@ -8,6 +8,7 @@ import java.util.PriorityQueue;
import com.cim.idm.framework.autoconfigure.ZidmPlatformLicenseAutoConfiguration;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -25,6 +26,7 @@ import com.zi.mwms.solution.config.Globals;
@SpringBootApplication(scanBasePackages = { "com.cim.idm","com.zi.mwms"},exclude = ZidmPlatformLicenseAutoConfiguration.class)
@PropertySource("file:${configRootPath}/db/oracle.properties")
@PropertySource("file:${configRootPath}/middleware/middleware.properties")
@MapperScan("com.cim.idm.dao")
//@EnableAdminServer
public class Application {

View File

@ -129,6 +129,16 @@ public class MaterialPacking extends FieldAccessor implements DataInfo<MaterialP
private String CUSTOMNO;
private String lastHoldUser; //最近一次冻结人
public String getLastHoldUser() {
return lastHoldUser;
}
public void setLastHoldUser(String lastHoldUser) {
this.lastHoldUser = lastHoldUser;
}
public String getSALESPERSON() {
return SALESPERSON;

View File

@ -148,6 +148,10 @@ public class MaterialShipRequestDetail extends FieldAccessor implements DataInfo
this.sobkz = sobkz;
}
private String erpFactory;
//////////////////////////////////////////////////////////////////////////////////////////////////
@ -304,6 +308,15 @@ public class MaterialShipRequestDetail extends FieldAccessor implements DataInfo
public double getAssignedQuantity() {
return assignedQuantity;
}
public String getErpFactory() {
return erpFactory;
}
public void setErpFactory(String erpFactory) {
this.erpFactory = erpFactory;
}
public void setAssignedQuantity(double assignedQuantity) {
this.assignedQuantity = assignedQuantity;
}

View File

@ -2,6 +2,7 @@
<configuration default="false" name="CNMsvr" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="zi-wms-boot" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.zi.mwms.solution.Application" />
<option name="VM_PARAMETERS" value="-DWMS_HOME=$ProjectFileDir$/zi-wms-environment/ -DconfigRootPath=$ProjectFileDir$/zi-wms-environment/config -DLOGDIR=$ProjectFileDir$/../logs -Dcompany=BOE -Dfactory=B16 -Dcim=MWMS -Dmode=DEV10539622 -Dsvr=CNMsvr -DSeq=CNMsvr1 -Dclient=OIC -Dmode=DEV -Dservice=8400 -Dnetwork=;225.11.11.4 -Ddaemon= -DworkerWeight=2 -DworkerTasks=1 -DschedulerWeight=10 -Ddq=${USERNAME} -DdataField=Message -Ddbtype=DEV -Didmframe.flow.bpelj=http://bpel.boe.com/bpelj/ -Dspring.jdbc.getParameterType.ignore=true -Dhttp.port=18873 -Duseamqp=false -Dscheduler=false -DuseTibrv=false -Dtypemode=Local" />
<method v="2">
<option name="Make" enabled="true" />
</method>

View File

@ -362,7 +362,7 @@ public class ToSAPServiceImpl {
erplog.setServerName("WmsToErp");
erplog.setEventName("FGStockIn");
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId(RECEIVEACTNO);
// erplog.setMessageId(RECEIVEACTNO);
erplog.setSendMsg2(makeFGStockIn);
erplog.setSendMsg(makeFGStockIn);
erplog.setReturnMsg2(sapreturn);
@ -436,6 +436,68 @@ public class ToSAPServiceImpl {
return undoId;
}
/**
* 手动入库处理FGStockIn请求
* 该方法负责将特定的物料信息发送到SAP系统并处理返回的结果
*
* @param bodyJson 包含物料信息的JSON字符串
* @param user 执行操作的用户
* @return 返回物料凭证相关的ID
* @throws Exception 如果与SAP系统的通信或其他错误发生时抛出异常
*/
public String FGStockInByManulIn(String bodyJson, String user) throws Exception {
// 初始化SAP返回信息结果代码消息文本和撤销ID
String sapreturn = "";
String rcode = "";
String rmsg = "";
String undoId = "";
try {
// 发送物料信息到SAP系统
sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl, "",
bodyJson);
// 解析SAP系统的返回信息
org.json.JSONObject receiveJsonObject = new org.json.JSONObject(sapreturn);
// 提取返回信息中的RETURN对象
org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN");
rcode = returnJsonObject.get("STATUS").toString();
rmsg = returnJsonObject.get("MSGTXT").toString();
// 如果返回结果状态为"S"成功则拼接物料凭证号和凭证年度作为undoId
if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
}
} catch (Exception e) {
// 记录异常日志并抛出运行时异常
log.error("WMS请求SAP异常:" + e.getMessage(), e);
throw new RuntimeException("WMS请求SAP异常:" + rmsg);
} finally {
// 将消息记录log表
ErpMessageLog erplog = new ErpMessageLog();
erplog.setEventUser(user);
erplog.setServerName("WmsToErp");
erplog.setEventName("FGStockIn");
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId("");
erplog.setSendMsg2(bodyJson);
erplog.setSendMsg(bodyJson);
erplog.setReturnMsg2(sapreturn);
erplog.setResultCode(rcode);
MessageLogUtil.writeMessageLog(erplog);
}
// 如果返回结果状态不是"S"则抛出异常
if (!"S".equals(rcode)) {
throw new RuntimeException("SAP返回" + rmsg);
}
// 返回物料凭证相关的ID
return undoId;
}
//取消成品入库接口zd.2024.8.29
public String cancelFGStockIn(List<String> boxList, String user,String siteName) throws Exception {

View File

@ -79,16 +79,16 @@ public class ToSAPMessageUtil {
// SDK
// 获取接口返回token
public static String authStr = "";
public static String baseUrl = "http://172.22.10.53:51000/RESTAdapter/OAuthServer";
public static String baseUrl = "http://218.93.237.50:51000/RESTAdapter/OAuthServer";
// public static String baseUrl = "http://172.22.10.53:8101/RESTAdapter/OAuthServer";
// public static String baseUrl = "http://172.22.10.53:8003/RESTAdapter/OAuthServer";
// public static String DNUrl = "http://218.93.237.50:51000/RESTAdapter/sd023/api";
// DN回传接口
public static String DNUrl = "http://172.22.10.53:51000/RESTAdapter/sd023/api";
public static String DNUrl = "http://218.93.237.50:51000/RESTAdapter/sd023/api";
// 货物移动接口
public static String materialChangeLocationUrl = "http://172.22.10.53:51000/RESTAdapter/mm067/api";
public static String materialChangeLocationUrl = "http://218.93.237.50:51000/RESTAdapter/mm067/api";
// 物料凭证冲销接口
public static String materilUndoUrl = "http://172.22.10.53:51000/RESTAdapter/mm068/api";
public static String materilUndoUrl = "http://218.93.237.50:51000/RESTAdapter/mm068/api";
public static String userName = "";
@ -511,6 +511,9 @@ public class ToSAPMessageUtil {
public static String sendHttpPost(String url, String interfaceID, String JSONBody) throws Exception {
log.info("*************************************************" );
log.info("*************************************************" );
log.info("******************开始发送******************" );
// 调用业务接口需实时获取token
authStr = getAccessToken(baseUrl);
@ -528,6 +531,9 @@ public class ToSAPMessageUtil {
response.close();
httpClient.close();
log.info("Response:>>>>" + responseContent);
log.info("******************发送结束******************" );
log.info("*************************************************" );
log.info("*************************************************" );
return responseContent;
}

View File

@ -0,0 +1,61 @@
package com.cim.idm.config;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* 日志切面类用于记录方法的执行情况
*/
@Aspect
@Component
public class LogAspect {
private static final Logger logger = LoggerFactory.getLogger(LogAspect.class);
/**
* 定义切点匹配Service中的所有方法
*/
@Pointcut("execution(* com.cim.idm.service.Impl.*Impl.*(..))")
public void logPointCut() {}
/**
* 环绕通知记录方法执行前后的信息
*
* @param joinPoint 切入点
* @return 方法返回值
* @throws Throwable 如果方法抛出异常则重新抛出
*/
@Around("logPointCut()")
@Transactional // 添加事务管理
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
try {
// 记录方法执行前的日志
logger.info("Method Name : {}", joinPoint.getSignature().getName());
logger.info("Class Name : {}", joinPoint.getTarget().getClass().getName());
logger.info("Arguments : {}", joinPoint.getArgs());
// 执行目标方法
Object result = joinPoint.proceed();
// 记录方法执行后的日志
logger.info("Result : {}", result);
return result;
} catch (Throwable e) {
// 捕获异常并记录错误日志
logger.error("Exception in {} occurred.", joinPoint.getSignature().getName(), e);
throw e;
} finally {
// 记录方法执行时间
long endTime = System.currentTimeMillis();
logger.info("Execution Time : {} ms", (endTime - startTime));
}
}
}

View File

@ -0,0 +1,45 @@
package com.cim.idm.controller;
import com.cim.idm.model.AssignAndDessignDto;
import com.cim.idm.model.HoldAndReleaseDto;
import com.cim.idm.response.BaseResponse;
import com.cim.idm.response.RespGenerator;
import com.cim.idm.service.AssignAndDessignService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@RestController
@RequestMapping("/AssignAndDessign")
@EnableAutoConfiguration
@Api(tags = "PC端单据绑定与解绑控制器")
@Slf4j
public class AssignAndDessignController {
@Autowired
private AssignAndDessignService assignAndDessignService;
@PostMapping(value = "/AssignAndDessignM")
@ApiOperation(value = "PC端单据绑定与解绑")
public BaseResponse<Object> AssignAndDessign(HttpServletRequest request,
HttpServletResponse response,
@ApiParam(value = "绑定解绑参数", required = true) @RequestBody AssignAndDessignDto AssignAndDessignDto) {
try {
assignAndDessignService.AssignAndDessign(AssignAndDessignDto);
} catch (Exception e) {
return RespGenerator.returnError(e.getMessage());
}
return RespGenerator.returnOK(null);
}
}

View File

@ -86,7 +86,7 @@ public class AutoLibraryController {
{
//修改Materialpacking 信息
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("StockState","StockOut");
bindMap.put("stockState","StockOut");
bindMap.put("areaName","");
bindMap.put("shipTime",new Timestamp(System.currentTimeMillis()));
SetEventInfo setEventInfo = new SetEventInfo();

View File

@ -6,6 +6,8 @@ import com.cim.idm.response.BaseResponse;
import com.cim.idm.response.RespGenerator;
import com.cim.idm.utils.EventInfoUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.index.qual.SameLen;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -25,8 +27,38 @@ import java.util.Map;
@RestController
@RequestMapping("/stockIn")
@EnableAutoConfiguration
@Slf4j
public class CacheWareController {
@RequestMapping(value = "/addNChargeNOrder", method = RequestMethod.POST)
public BaseResponse<Map<String, Object>> editMaterial(@RequestBody Map<String,Object> params){
log.info("CacheWareController addNChargeNOrder", params);
String sitename = (String)params.get("SITENAME");
String userid = (String)params.get("USERID");
String materialspecname = (String)params.get("MATERIALSPECNAME");
LocalDateTime makedatet = LocalDateTime.now();
Timestamp makedate = Timestamp.valueOf(makedatet);
String materialquantity = (String)params.get("MATERIALQUANTITY");
String erpfactory = (String)params.get("ERPFACTORY");
String unit = (String)params.get("UNIT");
String truegg = (String)params.get("TRUEGG");
String remark = (String)params.get("REMARK");
String is_sure = (String)params.get("IS_SURE");
String sql = "INSERT INTO MATERIALCACHE (SITENAME,USERID,MATERIALSPECNAME, MAKEDATE,MATERIALQUANTITY,ERPFACTORY,UNIT,TRUEGG,REMARK,IS_SURE) \r\n" +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
Object[] args = new Object[]{sitename, userid, materialspecname, makedate, materialquantity,
erpfactory, unit, truegg, remark, is_sure };
IDMFrameServiceProxy.getSqlTemplate().update(sql, args);
EventInfo eventInfo = new EventInfoUtil().makeEventInfo("addNChargeNOrder", userid, "addNChargeNOrder");
BaseResponse returnOK = RespGenerator.returnOK(params);
return returnOK;
}
@RequestMapping(value = "/checkNChargeNOrder", method = RequestMethod.POST)
public BaseResponse<Map<String, Object>> checkNChargeNOrder(@RequestBody Map<String,Object> params) throws ParseException {

View File

@ -6,6 +6,8 @@ import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.model.MaterialPacking;
import com.cim.idm.model.MaterialReceiveRequest;
import com.cim.idm.response.BaseResponse;
import com.cim.idm.response.RespGenerator;
import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.CommonUtils;
import com.cim.idm.wmspackage.name.NameServiceProxy;
@ -180,7 +182,7 @@ public class FGStockInController {
* @throws Exception 如果处理过程中发生异常
*/
@RequestMapping(value = "/FGStockIn", method = RequestMethod.POST)
public AjaxResult fgStockIn(@RequestBody JSONObject in) throws Exception {
public BaseResponse<Object> fgStockIn(@RequestBody JSONObject in) {
// 将输入的JSONObject转换为MaterialReceiveRequest对象
MaterialReceiveRequest sl = JSON.toJavaObject(in, MaterialReceiveRequest.class);
@ -196,11 +198,15 @@ public class FGStockInController {
// 初始化接收请求实际编号为null
String ReceiveRequestActNo = null;
// 调用服务方法处理物料接收
ProductIntoServiceImpl.fgStockInNew(boxList, user, ReceiveRequestActNo, commitDate, opCode);
// 调用手动入库的方法入库Box
try {
ProductIntoServiceImpl.fgStockInByManul(boxList, user, ReceiveRequestActNo, commitDate, opCode);
} catch (Exception e) {
return RespGenerator.returnError(e.getMessage());
}
// 返回成功结果
return AjaxResult.me().setSuccess(true).setResultObj(null);
return RespGenerator.returnOK(null);
}
}

View File

@ -0,0 +1,45 @@
package com.cim.idm.controller;
import com.cim.idm.model.HoldAndReleaseDto;
import com.cim.idm.response.BaseResponse;
import com.cim.idm.response.RespGenerator;
import com.cim.idm.service.HoldAndReleaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@RestController
@RequestMapping("/holdAndRelease")
@Slf4j
@Api(tags = "HoldAndReleaseController", description = "冻结解冻库存")
public class HoldAndReleaseController {
@Autowired
private HoldAndReleaseService holdAndReleaseService;
@PostMapping("/holdAndReleaseM")
@ApiOperation(value = "冻结解冻库存")
public BaseResponse<Object> hold(HttpServletRequest request,
HttpServletResponse response,
@ApiParam(value = "冻结解冻参数", required = true) @RequestBody HoldAndReleaseDto HoldAndReleaseDto){
log.info("HoldAndReleaseController hold {}", HoldAndReleaseDto);
try {
if (HoldAndReleaseDto == null) {
return RespGenerator.returnError("参数错误");
}
holdAndReleaseService.hold(HoldAndReleaseDto);
} catch (Exception e) {
log.error("HoldAndReleaseController hold error", e);
return RespGenerator.returnError("参数错误");
}
return RespGenerator.returnOK(null);
}
}

View File

@ -1309,8 +1309,8 @@ public class InvoiceController {
createMaterialShipRequestDetailInfo.setShipRequestDetailName("10");
createMaterialShipRequestDetailInfo.setShipRequestName(shipRequestName);
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("sdk_id", sdk_id);
hashMap.put("phase", phase);
// hashMap.put("sdk_id", sdk_id);
// hashMap.put("phase", phase);
hashMap.put("erpFactory", erpfactory);
createMaterialShipRequestDetailInfo.setUserColumns(hashMap);
MaterialShipRequestDetailServiceProxy.getMaterialShipRequestDetailService().create(createMaterialShipRequestDetailInfo);

View File

@ -69,6 +69,25 @@ public class LabelController {
return JsonResponse.success();
}
@RequestMapping(value = "/storagePrint", method = RequestMethod.POST)
public AjaxResult storagePrint(@RequestBody JSONObject in) throws CustomException {
// 获取信息
String printName = in.get("PRINTNAME").toString();
// 数据
List<Map<String,Object>> dataList = (List) in.get("LIST");
// 打印
List<String> resList = new ArrayList<>();
for (Map<String, Object> data : dataList) {
StoragePrintDto storagePrintDto = new StoragePrintDto();
storagePrintDto.setPrinterName(printName);
storagePrintDto.setSiteName(data.get("SITENAME").toString());
storagePrintDto.setStorageName(data.get("STORAGENAME").toString());
String urlInfo = labelService.storagePrint(storagePrintDto);
resList.add(urlInfo);
}
return AjaxResult.me().setResultObj(resList);
}
@RequestMapping(value = "/labelPrintTest", method = RequestMethod.POST)
//@Operation(summary = "标签打印测试, 测试只能打印 标签模板没有参数的标签. ")
public AjaxResult labelPrintTest(@RequestBody JSONObject in) throws CustomException {

View File

@ -7,7 +7,11 @@ import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.model.BSERPlocation;
import com.cim.idm.model.CheckPlan1;
import com.cim.idm.model.StorageSpec;
import com.cim.idm.response.BaseResponse;
import com.cim.idm.response.RespGenerator;
import com.cim.idm.utils.AjaxResult;
import com.cim.idm.wmspackage.storage.StorageServiceProxy;
import com.cim.idm.wmspackage.storage.management.data.StorageSpecKey;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -30,8 +34,6 @@ import java.util.Objects;
public class StorageController {
@RequestMapping(value = "/getORG", method = RequestMethod.POST)
public AjaxResult getORG(@RequestBody JSONObject in ){
@ -226,4 +228,71 @@ public class StorageController {
return AjaxResult.me().setResultObj(list);
}
@RequestMapping(value = "/addStorage", method = RequestMethod.POST)
public BaseResponse<Object> addStorage(@RequestBody Map<String, Object> param) {
// 获取参数
String storageName = (String) param.get("STORAGENAME");
String description = (String) param.get("DESCRIPTION");
String siteName = (String) param.get("SITENAME");
String erpFactory = (String) param.get("ERPFACTORY");
// 异常
StorageSpecKey storageSpecKey = new StorageSpecKey();
storageSpecKey.setStorageName(storageName);
storageSpecKey.setSiteName(siteName);
com.cim.idm.wmspackage.storage.management.data.StorageSpec storageSpec = null;
try {
storageSpec = StorageServiceProxy.getStorageSpecService().selectByKey(storageSpecKey);
if (Objects.nonNull(storageSpec)) {
return RespGenerator.returnError("已存在该货位!");
}
} catch (Exception ignored) {
}
storageSpec = new com.cim.idm.wmspackage.storage.management.data.StorageSpec();
// 构建数据
storageSpec.setKey(storageSpecKey);
storageSpec.setDescription(description);
storageSpec.setErpFactory(erpFactory);
// 插入数据
StorageServiceProxy.getStorageSpecService().insert(storageSpec);
return RespGenerator.returnOK(param);
}
@RequestMapping(value = "/editStorage", method = RequestMethod.POST)
public BaseResponse<Object> editStorage(@RequestBody Map<String, Object> param) {
// 获取参数
String storageName = (String) param.get("STORAGENAME");
String siteName = (String) param.get("SITENAME");
String description = (String) param.get("DESCRIPTION");
// 获取数据
StorageSpecKey storageSpecKey = new StorageSpecKey();
storageSpecKey.setStorageName(storageName);
storageSpecKey.setSiteName(siteName);
com.cim.idm.wmspackage.storage.management.data.StorageSpec storageSpec = null;
try {
storageSpec = StorageServiceProxy.getStorageSpecService().selectByKey(storageSpecKey);
} catch (Exception e) {
return RespGenerator.returnError("未找到该货位!");
}
// 构建数据
storageSpec.setDescription(description);
// 更新数据
StorageServiceProxy.getStorageSpecService().update(storageSpec);
return RespGenerator.returnOK(param);
}
@RequestMapping(value = "/delStorage", method = RequestMethod.POST)
public BaseResponse<Map<String, Object>> delStorage(@RequestBody Map<String, Object> param) {
// 获取参数
String storageName = (String) param.get("STORAGENAME");
String siteName = (String) param.get("SITENAME");
// 组建数据
StorageSpecKey storageSpec = new StorageSpecKey();
storageSpec.setStorageName(storageName);
storageSpec.setSiteName(siteName);
// 删除数据
StorageServiceProxy.getStorageSpecService().delete(storageSpec);
return RespGenerator.returnOK(param);
}
}

View File

@ -0,0 +1,21 @@
package com.cim.idm.dao;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface FgStockInDao {
//调用接口查询当前Box是否都是在库需要转库传入List<MaterialPacking>
public List<MaterialPacking> getBoxList(@Param("boxList") List<MaterialPacking> boxList,@Param("erpFactory") String erpFactory
,@Param("erpLocation") String erpLocation,@Param("locationName") String locationName) throws Exception;
//批量更新BS_MES_SHIPPED表的ReceiveFlag和ReceiveTime
public void updateBsMesShipped(@Param("boxList") List<MaterialPacking> boxList) throws Exception;
}

View File

@ -0,0 +1,24 @@
package com.cim.idm.dao;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.ToSAPFgStockInDto;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface ToSapDao {
//通过箱号集合获取要成品入库的信息
public List<ToSAPFgStockInDto> getFgStockInInfo(@Param("boxList") List<MaterialPacking> boxList) throws Exception;
//基于boxList更新物料凭证及库存状态
public void updateStockState(@Param("boxList") List<MaterialPacking> boxList,@Param("stockState") String stockState,@Param("undoId") String undoId) throws Exception;
//基于boxList写入过账流水表
public void saveUnDoInfo(@Param("boxList") List<MaterialPacking> boxList, @Param("unDoID") String unDoID, @Param("commitDate") String commitDate) throws Exception;
}

View File

@ -0,0 +1,20 @@
package com.cim.idm.model;
import lombok.Data;
import java.util.List;
@Data
public class AssignAndDessignDto {
private String userId;
private String receiveRequestName;
private String receiveRequestDetailName;
private String opType;
private List<MaterialPacking> boxList;
}

View File

@ -0,0 +1,24 @@
package com.cim.idm.model;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
@Slf4j
@Data
public class HoldAndReleaseDto {
private String userId;
private String flag;
private List<HoldAndReleaseDtoBuilder> boxList;
@Data
public static class HoldAndReleaseDtoBuilder {
private String siteName;
private String barCode;
}
}

View File

@ -0,0 +1,9 @@
package com.cim.idm.model;
import lombok.Data;
@Data
public class StorageObject {
private String CODE;
private String NAME;
}

View File

@ -0,0 +1,18 @@
package com.cim.idm.model;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class StoragePrintDto {
// sdk
private String siteName;
// 货位名称
private String storageName;
// 打印机名称
private String printerName;
}

View File

@ -0,0 +1,28 @@
package com.cim.idm.model;
import lombok.Data;
@Data
public class ToSAPFgStockInDto {
// m.MATERIALSPECNAME ,
//
// m.PRODUCTORDER ,
// m.PACKINGGRADE ,
// m.ERPFACTORY ,
// m.ERPLOCATION ,
// m.UNIT ,
// m.PACKINGGRADE,
// m.MATERIALSPECTYPE,
// sum(m.MATERIALQUANTITY ) MATERIALQUANTITY
private String materialSpecName;
private String productOrder;
private String packingGrade;
private String erpFactory;
private String erpLocation;
private String unit;
private String materialSpecType;
private String materialQuantity;
}

View File

@ -7,7 +7,7 @@ public class RespGenerator {
* 接口返回数据
*/
public static BaseResponse returnOK(Object data) {
return new BaseResponse("0", "SUCCESS!", data);
return new BaseResponse("200", "SUCCESS!", data);
}
/**
@ -36,6 +36,6 @@ public class RespGenerator {
* 错误信息
*/
public static BaseResponse<Object> returnError(String message) {
return new BaseResponse<Object>("-1", message, null);
return new BaseResponse<Object>("500", message, null);
}
}

View File

@ -0,0 +1,10 @@
package com.cim.idm.service;
import com.cim.idm.model.AssignAndDessignDto;
import com.cim.idm.response.BaseResponse;
public interface AssignAndDessignService {
//绑定和解绑
public BaseResponse<Object> AssignAndDessign(AssignAndDessignDto AssignAndDessignDto) throws Exception;
}

View File

@ -2,8 +2,10 @@ package com.cim.idm.service;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import java.text.ParseException;
import java.util.List;
/**
* 成品入库接口类
@ -17,4 +19,14 @@ public interface FGStockInService {
String ReceiveRequestDetailName, String makeDate,
String receiveActNo, String actType, String receiveQuantity,
String subMaterialSpecName) throws CustomException, ParseException;
/**
* 手动入库非自动入库包含转库和自动入库
* @param boxList
* @param user
* @param receiveRequestActNo
* @param commitDate
* @param opCode
*/
void fgStockInByManul(List<MaterialPacking> boxList, String user, String receiveRequestActNo, String commitDate, String opCode) throws Exception;
}

View File

@ -0,0 +1,9 @@
package com.cim.idm.service;
import com.cim.idm.model.HoldAndReleaseDto;
public interface HoldAndReleaseService {
//冻结或者解锁库存
public void hold(HoldAndReleaseDto holdAndReleaseDto);
}

View File

@ -0,0 +1,109 @@
package com.cim.idm.service.Impl;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.AssignAndDessignDto;
import com.cim.idm.model.MaterialPacking;
import com.cim.idm.response.BaseResponse;
import com.cim.idm.service.AssignAndDessignService;
import com.cim.idm.utils.EventInfoUtil;
import com.cim.idm.wmspackage.invoice.MaterialReceiveRequestServiceProxy;
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
import com.cim.idm.wmspackage.materialpacking.management.info.MaterialPackingAssignShipRequestInfo;
import com.cim.idm.wmspackage.materialpacking.management.info.MaterialPackingDeassignShipRequestInfo;
import com.cim.idm.wmspackage.receiverequestdetail.ReceiveRequestDetailServiceProxy;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class AssignAndDessignServiceImpl implements AssignAndDessignService {
/**
* @param AssignAndDessignDto
* @return
* @throws Exception
*/
@Override
@Transactional(rollbackFor = Exception.class)
public BaseResponse<Object> AssignAndDessign(AssignAndDessignDto AssignAndDessignDto) throws Exception {
log.info("AssignAndDessignServiceImpl.AssignAndDessign {}", AssignAndDessignDto);
//获取单号和行号
String opType = AssignAndDessignDto.getOpType();
List<MaterialPacking> boxList = AssignAndDessignDto.getBoxList();
String userId = AssignAndDessignDto.getUserId();
String receiveRequestName = AssignAndDessignDto.getReceiveRequestName();
String receiveRequestDetailName = AssignAndDessignDto.getReceiveRequestDetailName();
if (boxList == null || boxList.size() == 0) {
throw new Exception("请选择要绑定的物料");
}
//循环判断Box是否已被其他单据占用
for (MaterialPacking materialPacking : boxList) {
String materialPackingName = materialPacking.getMaterialPackingName();
String siteName = materialPacking.getSiteName();
if (materialPackingName == null || materialPackingName.equals("")) {
throw new Exception("请选择要绑定的物料");
}
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName);
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking1 = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
if (materialPacking1 == null) {
throw new Exception("物料不存在");
}
String shipRequestName = materialPacking1.getShipRequestName();
if (shipRequestName != null && !shipRequestName.equals("")) {
if (!shipRequestName.equals(receiveRequestName)) {
throw new Exception("物料已被其他单据占用");
}
}
}
if (opType == null || opType.equals("")) {
throw new Exception("请选择操作类型");
}
if (userId == null || userId.equals("")) {
throw new Exception("请选择操作人");
}
MaterialPackingAssignShipRequestInfo assignShipRequestInfo = new MaterialPackingAssignShipRequestInfo();
List<MaterialPackingKey> materialPackingKeyList = new ArrayList<MaterialPackingKey>() ;
for (MaterialPacking materialPacking : boxList) {
String materialPackingName = materialPacking.getMaterialPackingName();
String siteName = materialPacking.getSiteName();
if (materialPackingName == null || materialPackingName.equals("")) {
throw new Exception("请选择要绑定的物料");
}
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName);
materialPackingKeyList.add(materialPackingKey);
}
//枚举两个方法组分别执行以下的Case
switch (opType) {
case "Assign":
EventInfo eventInfo = EventInfoUtil.makeEventInfo("Assign", userId, "绑定单据");
assignShipRequestInfo.setShipRequestName(receiveRequestName);
assignShipRequestInfo
.setShipRequestDetailName(receiveRequestDetailName);
Map<String, Object> bindMap = new HashMap<String, Object>();
assignShipRequestInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService()
.assignShipRequest(materialPackingKeyList, eventInfo,
assignShipRequestInfo);
break;
case "Dessign":
EventInfo eventInfo1 = EventInfoUtil.makeEventInfo("Dessign", userId, "解绑单据");
assignShipRequestInfo.setShipRequestName("");
assignShipRequestInfo
.setShipRequestDetailName("");
MaterialPackingServiceProxy.getMaterialPackingService()
.assignShipRequest(materialPackingKeyList, eventInfo1,
assignShipRequestInfo);
break;
default:
break;
}
return null;
}
}

View File

@ -1,5 +1,6 @@
package com.cim.idm.service.Impl;
import cn.hutool.core.text.CharSequenceUtil;
import com.cim.idm.constants.CustomExceptionCode;
import com.cim.idm.constants.MsgConstants;
import com.cim.idm.constants.PolicyDef;
@ -10,13 +11,13 @@ import com.cim.idm.framework.exception.IDMFrameDBErrorSignal;
import com.cim.idm.framework.orm.info.KeyInfo;
import com.cim.idm.framework.orm.service.CommonServiceDAO;
import com.cim.idm.framework.util.time.TimeStampUtil;
import com.cim.idm.model.BSLabel;
import com.cim.idm.model.BSLabelKey;
import com.cim.idm.model.LabelParameterObject;
import com.cim.idm.model.PrintRequest;
import com.cim.idm.model.*;
import com.cim.idm.mwmsextend.generic.util.CommonUtil;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
import com.cim.idm.wmsextend.generic.util.ObjectUtil;
import com.cim.idm.wmspackage.storage.StorageServiceProxy;
import com.cim.idm.wmspackage.storage.management.data.StorageSpec;
import com.cim.idm.wmspackage.storage.management.data.StorageSpecKey;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
@ -849,6 +850,47 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
// labelPrint(pgData, requestUrl, pr, params);
// }
/**
* 货位打印
*/
public String storagePrint(StoragePrintDto data) throws IllegalArgumentException, CustomException {
// 获取数据
StorageSpecKey storageSpecKey = new StorageSpecKey();
storageSpecKey.setStorageName(data.getStorageName());
storageSpecKey.setSiteName(data.getSiteName());
StorageSpec storageSpec = null;
try {
storageSpec = StorageServiceProxy.getStorageSpecService().selectByKey(storageSpecKey);
} catch (Exception e) {
throw new CustomException("未找到该货位!");
}
StorageObject storageObject = new StorageObject();
storageObject.setCODE(storageSpec.getKey().getStorageName());
storageObject.setNAME(storageSpec.getDescription());
// 打印机数据
// 名称
String printer = CharSequenceUtil.isEmpty(data.getPrinterName())
? getDefaultPrinter() : data.getPrinterName();
// 地址
String requestUrl = getRequestUrlByServer("LabelRequestURL");
// 参数BSLABELASSIGNPARAMETER 表中映射关系
List<String> params = getLabelAssignParameter("storageLabel001");
// 模板
String labelPath = "D:\\storage.btw";
// 打印请求
PrintRequest pr = new PrintRequest();
pr.setLibraryID(UUID.randomUUID().toString());
pr.setAbsolutePath(labelPath);
pr.setCopies(1);
pr.setSerialNumbers(0);
pr.setStartingPosition(0);
pr.setPrinter(printer);
pr.setPrintRequestID(UUID.randomUUID().toString());
return labelPrint(storageObject, requestUrl, pr, params);
}
/**
* rePrintArriveMaterial
* @param UserId

View File

@ -154,7 +154,7 @@ public class ChargeSplitServiceImpl implements ChargeSplitService {
bindMap.put("MaterialQuantity", boxList.get(1).getMaterialQuantity());// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", holdState);
bindMap.put("LocationName", locationName);
@ -213,7 +213,7 @@ public class ChargeSplitServiceImpl implements ChargeSplitService {
//更新原标签批次的库位状态为出库
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",boxList.get(0).getMaterialPackingName());
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
hashMap3.put("StockState", "StockOut");
hashMap3.put("stockState", "StockOut");
setEventInfo.setUserColumns(hashMap3);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
}
@ -347,7 +347,7 @@ public class ChargeSplitServiceImpl implements ChargeSplitService {
bindMap.put("MaterialQuantity", StorageSpec.getMATERIALQUANTITY1());// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", holdState);
bindMap.put("LocationName", locationName);
@ -400,7 +400,7 @@ public class ChargeSplitServiceImpl implements ChargeSplitService {
bindMap2.put("MaterialQuantity", StorageSpec.getMATERIALQUANTITY2());// 数量
if(!locationNameCr.isEmpty() && locationNameCr.contains("现场仓")) {
bindMap2.put("StockState", "StockOut");
bindMap2.put("stockState", "StockOut");
}
createInfo2.setUserColumns(bindMap2);
@ -411,7 +411,7 @@ public class ChargeSplitServiceImpl implements ChargeSplitService {
//更新原标签批次的库位状态为出库
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",StorageSpec.getMaterialPackingName());
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
hashMap3.put("StockState", "StockOut");
hashMap3.put("stockState", "StockOut");
setEventInfo.setUserColumns(hashMap3);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
}

View File

@ -0,0 +1,61 @@
package com.cim.idm.service.Impl;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.HoldAndReleaseDto;
import com.cim.idm.service.HoldAndReleaseService;
import com.cim.idm.utils.EventInfoUtil;
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
import com.cim.idm.wmspackage.materialpacking.management.info.SetEventInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class HoldAndReleaseServiceImpl implements HoldAndReleaseService {
/**
* @param holdAndReleaseDto
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void hold(HoldAndReleaseDto holdAndReleaseDto) {
log.debug("HoldAndReleaseServiceImpl hold {}", holdAndReleaseDto);
SetEventInfo setEventInfo = new SetEventInfo();
EventInfo eventInfo = null;
String userId = holdAndReleaseDto.getUserId();
List<HoldAndReleaseDto.HoldAndReleaseDtoBuilder> boxList = holdAndReleaseDto.getBoxList();
List<MaterialPackingKey> mpKeyList = new ArrayList<MaterialPackingKey>();
for (HoldAndReleaseDto.HoldAndReleaseDtoBuilder holdAndReleaseDtoBuilder : boxList) {
String barCode = holdAndReleaseDtoBuilder.getBarCode();
String siteName = holdAndReleaseDtoBuilder.getSiteName();
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, barCode);
mpKeyList.add(materialPackingKey);
}
String flag = holdAndReleaseDto.getFlag();
//判断标志冻结和解冻走不同的方法
switch(flag) {
case "Y": //冻结
eventInfo = EventInfoUtil.makeEventInfo("Hold", userId, "冻结库存");
break;
case "N"://解冻
eventInfo = EventInfoUtil.makeEventInfo("Release", userId, "解冻库存");
break;
default:
break;
}
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("holdState", flag);
bindMap.put("lastHoldUser", "Y".equals(flag) ? userId : "");
setEventInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, eventInfo, setEventInfo);
}
}

View File

@ -62,6 +62,18 @@ public class LabelServiceImpl implements LabelService {
return urlFull;
}
@Override
public String storagePrint(StoragePrintDto data) throws CustomException {
String urlFull = "";
try {
urlFull = bsLabelService.storagePrint(data);
} catch (Exception e) {
e.printStackTrace();
throw new CustomException( "标签打印异常... " + e.getMessage());
}
return urlFull;
}
@Override
public void labelPrintTest1(LabelPrintDto1 data) throws CustomException {
try {

View File

@ -227,7 +227,7 @@ public class MoveTransformServiceImpl {
hashMap.put("locationName", locationname);
hashMap.put("SDK_ID", sdk_ID);
hashMap.put("PHASE", phase);
hashMap.put("StockState", "Stocked");
hashMap.put("stockState", "Stocked");
setEventInfo.setUserColumns(hashMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPacking.getKey(), makeEventInfo, setEventInfo);
}
@ -250,7 +250,7 @@ public class MoveTransformServiceImpl {
bindMap.put("MaterialQuantity", materialquantity);// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", holdState);
bindMap.put("LocationName", locationname);

View File

@ -90,7 +90,7 @@ public class OtherInServiceImpl implements OtherInService {
bindMap.put("MaterialQuantity", qty);// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Created");
bindMap.put("stockState", "Created");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", "N");
// bindMap.put("AreaName", queryForList.get(0).get("AREANAME"));
@ -153,7 +153,7 @@ public class OtherInServiceImpl implements OtherInService {
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("unDoID", billCode);
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
setEventInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
}

View File

@ -1,13 +1,18 @@
package com.cim.idm.service.Impl;
import com.alibaba.fastjson.JSON;
import com.cim.idm.dao.FgStockInDao;
import com.cim.idm.dao.ToSapDao;
import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.framework.util.time.TimeStampUtil;
import com.cim.idm.model.ToSAPFgStockInDto;
import com.cim.idm.service.FGStockInService;
import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.CommonUtils;
import com.cim.idm.utils.EventInfoUtil;
import com.cim.idm.utils.MapUtils;
import com.cim.idm.wmsextend.generic.GenericServiceProxy;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
import com.cim.idm.wmspackage.material.MaterialServiceProxy;
@ -42,6 +47,12 @@ public class ProductIntoServiceImpl implements FGStockInService {
@Autowired
private ToSAPServiceImpl toSAPService;
@Autowired
private FgStockInDao fgStockInDao;
@Autowired
private ToSapDao toSapDao;
CommonUtils untils=new CommonUtils();
/**
@ -261,13 +272,56 @@ public class ProductIntoServiceImpl implements FGStockInService {
String aimErpFactory = boxList.get(0).getErpFactory();
String aimErpLocation = boxList.get(0).getErpLocation();
String aimLOcationName = boxList.get(0).getLocationName();
boolean fgStockInBySplitCharge20241118 = fgStockInBySplitCharge20241118(pc, user, commitDate, opCode);
String billCode = toSAPService.NoSourceChangeLocation(arrayList,aimErpFactory,
aimErpLocation, aimLOcationName, user );
}
/**
* 手动入库非自动入库包含转库和自动入库
*
* @param boxList
* @param user
* @param receiveRequestActNo
* @param commitDate
* @param opCode
*/
@Override
@Transactional
public void fgStockInByManul(List<MaterialPacking> boxList, String user, String receiveRequestActNo, String commitDate, String opCode) throws Exception {
//调用mybatis查询当前要入库的信息是否是同一类型转库Or入库
List<MaterialPacking> packingList = fgStockInDao.getBoxList(boxList,boxList.get(0).getErpFactory(),boxList.get(0).getErpLocation(),boxList.get(0).getLocationName());
if(packingList.size()==0){
throw new Exception("请选择正确的入库信息");
}
EventInfo eventInfo = EventInfoUtil.makeEventInfo("receiveMesShippInfo", user, "receiveMesShippInfo");
//将查询的结果写入MaterialPacking表
for(int i=0;i<packingList.size();i++){
//util将实体类中有值的放到map
Map<String, Object> stringObjectMap = MapUtils.entityToMap(packingList.get(i));
CreateInfo packingList1 = new CreateInfo();
packingList1.setSiteName("SDK");
packingList1.setMaterialPackingName(packingList.get(i).getMaterialPackingName());
packingList1.setUserColumns(stringObjectMap);
MaterialPackingServiceProxy.getMaterialPackingService().create(eventInfo, packingList1);
}
//调用Sap入库接口
List<ToSAPFgStockInDto> fgStockInInfo = toSapDao.getFgStockInInfo(boxList);
//封装为Json的字符串
String json = JSON.toJSONString(fgStockInInfo);
String undoID = toSAPService.FGStockInByManulIn(json, user);
//更新物料凭证和库存状态
toSapDao.updateStockState(boxList, "Stocked", undoID);
//更新过账流水
toSapDao.saveUnDoInfo( boxList, undoID, commitDate);
//更新接口表的标记和
fgStockInDao.updateBsMesShipped(boxList);
}
/**
*>
* @param eventInfo
* @param siteName
* @param materialPackingName
@ -424,7 +478,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
bindMap.put("MaterialQuantity", queryForList.get(0).get("MATERIALQUANTITY"));// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Created");
bindMap.put("stockState", "Created");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", "N");
bindMap.put("areaName", areaName);
@ -501,7 +555,6 @@ public class ProductIntoServiceImpl implements FGStockInService {
}
/**
* 成品入库不拆完工报告
* @param pc
@ -620,70 +673,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
}
//成品入库拆分批次时存储物料凭证zd.2024.9.27
public void SaveUnDoInfoBySplitCharge( String undoid,String commitDate,String receiveRequestName) {
String insertUnDOMaterialPackingInfo = " insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE, \r\n" +
" SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE, \r\n" +
" MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY, \r\n" +
" MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME, \r\n" +
" DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, \r\n" +
" LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME, \r\n" +
" MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME, \r\n" +
" SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG) \r\n" +
" WITH MS AS (SELECT MATERIALPACKINGNAME,RECEIVEREQUESTNAME,sum(qty)QTY FROM MATERIALPACKINGSUB m WHERE m.MATERIALPACKINGNAME IN\r\n" +
" (SELECT MATERIALPACKINGNAME from MATERIALPACKING a where a.unDoID=:UNDOID ) AND m.RECEIVEREQUESTNAME =:RECEIVEREQUESTNAME\r\n" +
" GROUP BY MATERIALPACKINGNAME,RECEIVEREQUESTNAME)\r\n" +
" select unDoID,'' as preundoid,UNDODETAILNAME,'Completed' as undoidstate,:commitDate AS UNDOIDDATE, \r\n" +
" SITENAME, m.MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE, \r\n" +
" MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY, \r\n" +
" MS.QTY , PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME, \r\n" +
" DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, \r\n" +
" LASTEVENTCOMMENT, CREATETIME, CREATEUSER, :RECEIVEREQUESTNAME, m.RECEIVEREQUESTDETAILNAME, \r\n" +
" MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME, \r\n" +
" SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG \r\n" +
" from MATERIALPACKING m LEFT JOIN MS\r\n" +
" ON m.MATERIALPACKINGNAME=MS.MATERIALPACKINGNAME \r\n" +
" where m.unDoID=:UNDOID ";
Map<String, Object> bindMap_insert = new HashMap<String, Object>();
bindMap_insert.put("UNDOID", undoid);
bindMap_insert.put("commitDate", commitDate);
bindMap_insert.put("RECEIVEREQUESTNAME", receiveRequestName);
IDMFrameServiceProxy.getSqlTemplate()
.update(insertUnDOMaterialPackingInfo, bindMap_insert);
}
public EventInfo makeEventInfo( String eventName, String eventUser, String eventComment,
String reasonCodeType, String reasonCode )
{
EventInfo eventInfo = new EventInfo();
eventInfo.setBehaviorName( "" );
eventInfo.setEventName( eventName );
eventInfo.setEventUser( eventUser );
if ( eventComment == null )
eventComment = "";
eventInfo.setEventComment( eventComment );
eventInfo.setEventTime( TimeStampUtil.getCurrentTimestamp());
// Do Not Check TimeKey Validation
eventInfo.setCheckTimekeyValidation(false);
eventInfo.setEventTimeKey(TimeStampUtil.getCurrentEventTimeKey());
if ( reasonCodeType == null )
reasonCodeType = "";
eventInfo.setReasonCodeType( reasonCodeType );
if ( reasonCode == null )
reasonCode = "";
eventInfo.setReasonCode( reasonCode );
return eventInfo;
}
/**
* 保质期计算
@ -737,7 +727,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("unDoID", billCode);
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
setEventInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);

View File

@ -382,7 +382,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
bindMap.put("MaterialQuantity", queryForList.get(0).get("MATERIALQUANTITY"));// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Created");
bindMap.put("stockState", "Created");
bindMap.put("OldStockState", "Created");
bindMap.put("truegg", queryForList.get(0).get("TRUEGG"));
bindMap.put("HoldState", "N");
@ -455,7 +455,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
bindMap.put("MaterialQuantity", queryForList.get(0).get("MATERIALQUANTITY"));// 数量
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Created");
bindMap.put("stockState", "Created");
bindMap.put("SDK_ID", queryForList.get(0).get("SDK_ID"));
bindMap.put("PHASE", queryForList.get(0).get("PHASE"));
bindMap.put("unit", queryForList.get(0).get("UNIT"));
@ -565,7 +565,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("unDoID", billCode);
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
setEventInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo,
setEventInfo);

View File

@ -67,7 +67,7 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
Map<String, Object> hashMap3 = new HashMap<>();
hashMap3.put("PackingState", "Released");
hashMap3.put("OldPackingState", "Released");
hashMap3.put("StockState", "Stocked");
hashMap3.put("stockState", "Stocked");
hashMap3.put("OldStockState", "StockOut");
hashMap3.put("DurableName", durableName);
hashMap3.put("AreaName", areaName);
@ -100,7 +100,7 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
bindMap.put("MaterialQuantity", queryResult.get("MATERIALQUANTITY"));
bindMap.put("PackingState", "Released");
bindMap.put("OldPackingState", "Released");
bindMap.put("StockState", "Stocked");
bindMap.put("stockState", "Stocked");
bindMap.put("OldStockState", "Created");
bindMap.put("HoldState", "N");
bindMap.put("charge", palletName.split("\\|")[4]);
@ -263,7 +263,7 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
SetEventInfo setEventInfo = new SetEventInfo();
for (Map<String, Object> map : queryForList) {
bindMap.put("packingState","Released");
bindMap.put("StockState","Stocked");
bindMap.put("stockState","Stocked");
bindMap.put("unDoID",UNDOID);
setEventInfo.setUserColumns(bindMap);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());

View File

@ -228,7 +228,7 @@ public class SaleReturnServiceImpl implements SaleReturnService {
for (MaterialPacking materialPacking : MaterialPackingList) {
//更新批次数量库位状态
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("StockState", "Stocked");
hashMap.put("stockState", "Stocked");
hashMap.put("shipRequestName", "");
hashMap.put("shipRequestDetailName", "");
hashMap.put("unDoID", billCode);

View File

@ -239,7 +239,7 @@ public class TransferInServiceImpl implements TransferInService {
for (MaterialPacking materialPacking : MaterialPackingList) {
//更新批次数量库位状态
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("StockState", "Stocked");
hashMap.put("stockState", "Stocked");
hashMap.put("shipRequestName", "");
hashMap.put("shipRequestDetailName", "");
// hashMap.put("commitDate",commitDate);
@ -415,7 +415,7 @@ public class TransferInServiceImpl implements TransferInService {
SetEventInfo setEventInfo = new SetEventInfo();
//更新批次数量库位状态
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("StockState", "Stocked");
hashMap.put("stockState", "Stocked");
hashMap.put("shipRequestName", "");
hashMap.put("shipRequestDetailName", "");
// hashMap.put("commitDate",commitDate);

View File

@ -44,6 +44,12 @@ public interface LabelService {
* @throws IllegalArgumentException 如果data为null
*/
String labelPrintTest(LabelPrintDto data) throws CustomException;
/**
* 货位打印
*/
String storagePrint(StoragePrintDto data) throws CustomException;
/**
* 标签存量打印修改品名
*/

View File

@ -0,0 +1,32 @@
package com.cim.idm.utils;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
public class MapUtils {
/**
* 将实体类中有值的key和value放到map
*
* @param obj 实体类对象
* @return 包含实体类字段和值的map
*/
public static Map<String, Object> entityToMap(Object obj) {
Map<String, Object> map = new HashMap<>();
if (obj == null) {
return map;
}
Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
try {
if (field.get(obj) != null) {
map.put(field.getName(), field.get(obj));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
}

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cim.idm.dao.FgStockInDao">
<!-- 更新入库标记-->
<update id="updateBsMesShipped" parameterType="java.util.List">
UPDATE BS_MES_SHIPPED T
SET
T.RECEIVE_FLAG = 'Y',
T.RECEIVETIME = SYSDATE
WHERE
T.LOTNAME IN
<foreach item="box" index="index" collection="boxList" open="(" separator="," close=")">
#{box.materialPackingName}
</foreach>
</update>
<!-- 获取所有待入库的信息-->
<select id="getBoxList"
resultType="com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking" parameterType="java.util.List">
SELECT
T.LOTNAME MATERIALPACKINGNAME,
T.LOTNAME LKMATERIALPACKINGNAME,
T.QTY MATERIALQUANTITY,
T.QTY SUBPACKINGQUANTITY,
T.QTY MaterialCreateQuantity,
'SDK' siteName,
'Released' PackingState,
'Created' stockState,
T.DURABLETYPE durableType,
#{erpFactory} ERPFactory,
#{erpLocation} ERPLOCATION,
#{locationName} LOCATIONNAME,
T.AREA areaName,
NVL(T.MAKEDATE, SYSDATE ) MAKEDATE ,
NVL(T.MAKEDATE, SYSDATE ) + NVL(M3.EXPIRATIONDAY, '9999') expiringDate,
SYSDATE ReceiveTime,
T.REQUESTNAME productOrder,
T.CAREER_ASSISTANCE ,
M3.MATERIALSPECTYPE ,
T.BUSINESS_UNIT,
T.SALESPERSON,
T.UNIT,
T.REQUESTNAME,
T.PRODUCTSPECNAME MATERIALSPECNAME,
SS.SPECNAME ,
T.SDK_ID ,
T.AREA ,
T.SHIPUSER ,
T.PACKINGGRADE ,
T.PACKINGGRADEDETAIL ,
T.SHIPTIME ,
M3.MATERIALTYPE ,
T.PHASE,
T.GXID,
T.MATERIALSPECTYPE
FROM
BS_MES_SHIPPED T
LEFT JOIN SDK_SPEC SS ON
T.SDK_ID = SS.SDK_ID
LEFT JOIN MATERIALSPEC M3 ON
T.PRODUCTSPECNAME = M3.MATERIALSPECNAME
WHERE
(T.RECEIVE_FLAG IS NULL
OR T.RECEIVE_FLAG !='Y')
AND T.LOTNAME IN
<foreach item="box" index="index" collection="boxList" open="(" separator="," close=")">
#{box.materialPackingName}
</foreach>
</select>
</mapper>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cim.idm.dao.ToSapDao">
<!-- 通过箱号集合获取要成品入库的信息 -->
<select id="getFgStockInInfo" resultType="com.cim.idm.model.ToSAPFgStockInDto" parameterType="java.util.List">
SELECT m.MATERIALSPECNAME ,
m.PRODUCTORDER ,
m.PACKINGGRADE ,
m.ERPFACTORY ,
m.ERPLOCATION ,
m.UNIT ,
m.MATERIALSPECTYPE,
sum(m.MATERIALQUANTITY ) MATERIALQUANTITY
FROM MATERIALPACKING m
LEFT JOIN BS_MES_SHIPPED bms ON m.materialpackingname = bms.lotname
WHERE bms.RECEIVE_FLAG != 'Y'
AND m.STOCKSTATE = 'Created'
AND m.materialpackingname IN
<foreach item="box" index="index" collection="boxList" open="(" separator="," close=")">
#{box.materialPackingName}
</foreach>
GROUP BY m.MATERIALSPECNAME ,m.PRODUCTORDER ,m.ERPFACTORY ,m.ERPLOCATION ,m.UNIT ,
m.PACKINGGRADE,m.MATERIALSPECTYPE
</select>
<!-- 更新库存状态 -->
<update id="updateStockState" parameterType="map">
UPDATE MATERIALPACKING
SET STOCKSTATE = #{stockState},UNDOID = #{undoId}
WHERE MATERIALPACKINGNAME IN
<foreach item="box" index="index" collection="boxList" open="(" separator="," close=")">
#{box.materialPackingName}
</foreach>
</update>
<!-- 保存未完成信息 -->
<insert id="saveUnDoInfo" parameterType="map">
INSERT INTO BS_MATERIALPACKINGUNDOINFO (
unDoID, preundoid, UNDODETAILNAME, undoidstate, UNDOIDDATE,
SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,
MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,
MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,
DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,
LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,
MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,
SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG
)
SELECT
#{unDoID}, '' as preundoid, UNDODETAILNAME, 'Completed' as undoidstate, #{commitDate} AS UNDOIDDATE,
SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,
MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,
MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,
DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,
LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,
MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,
SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG
FROM MATERIALPACKING
WHERE unDoID = #{unDoID}
</insert>
</mapper>

View File

@ -2963,7 +2963,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("MaterialQuantity", quantity);// 数量
bindMap.put("PackingState", fmp.getPackingState());
bindMap.put("OldPackingState", fmp.getOldStockState());
bindMap.put("StockState", fmp.getStockState());
bindMap.put("stockState", fmp.getStockState());
bindMap.put("OldStockState", fmp.getOldStockState());
bindMap.put("HoldState", fmp.getHoldState());
bindMap.put("AreaName", fmp.getAreaName());
@ -6012,7 +6012,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("PackingState", materialPackingData.getPackingState());
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
//B9&B17对于pcb拆分拆分后hold手动解除
if((siteName.equals("B9")||siteName.equals("B17"))&&materialPackingData.getMaterialSpecName().startsWith("44-977")){
@ -6148,7 +6148,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("PackingState", materialPackingData.getPackingState());
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
bindMap.put("HoldState", materialPackingData.getHoldState());
bindMap.put("AreaName", materialPackingData.getAreaName());
@ -7474,7 +7474,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("PackingState",materialPackingData.getPackingState() );
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
//B9对于pcb拆分拆分后hold手动解除
if(siteName.equals("B9")&&materialPackingData.getMaterialSpecName().startsWith("44-977")){
@ -7636,7 +7636,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("PackingState",materialPackingData.getPackingState() );
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
bindMap.put("HoldState", materialPackingData.getHoldState());
bindMap.put("AreaName", materialPackingData.getAreaName());
@ -7791,7 +7791,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo,
bindMap.put("PackingState",materialPackingData.getPackingState() );
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
bindMap.put("HoldState", materialPackingData.getHoldState());
bindMap.put("AreaName", materialPackingData.getAreaName());

View File

@ -3059,7 +3059,7 @@ public void checkETCState( String materialpackingName)throws Exception {
materialPackingKey.setMaterialPackingName(PalletList.get(i).get("MATERIALPACKINGNAME").toString());
materialPackingKey.setSiteName(siteName);
bindMap.put("packingState","Released");
bindMap.put("StockState","Stocked");
bindMap.put("stockState","Stocked");
bindMap.put("materialProcessGroupName",PalletList.get(i).get("MATERIALPROCESSGROUPNAME")==null?"":PalletList.get(i).get("MATERIALPROCESSGROUPNAME").toString());
bindMap.put("packingGrade",PalletList.get(i).get("PACKINGGRADE")==null?"":PalletList.get(i).get("PACKINGGRADE").toString());
setEventInfo.setUserColumns(bindMap);
@ -3101,7 +3101,7 @@ public void checkETCState( String materialpackingName)throws Exception {
materialPackingKey.setMaterialPackingName(PalletList.get(i).get("MATERIALPACKINGNAME").toString());
materialPackingKey.setSiteName(siteName);
bindMap.put("packingState","Completed");
bindMap.put("StockState","StockOut");
bindMap.put("stockState","StockOut");
//bindMap.put("materialProcessGroupName",PalletList.get(i).get("MATERIALPROCESSGROUPNAME")==null?"":PalletList.get(i).get("MATERIALPROCESSGROUPNAME").toString());
//bindMap.put("packingGrade",PalletList.get(i).get("PACKINGGRADE")==null?"":PalletList.get(i).get("PACKINGGRADE").toString());
setEventInfo.setUserColumns(bindMap);
@ -3800,7 +3800,7 @@ public List<MaterialPacking> GetOQAList(List<MaterialPackingFromTQMS> informatio
bindMap.put("PackingState", materialPackingData.getPackingState());
bindMap.put("OldPackingState",
materialPackingData.getOldStockState());
bindMap.put("StockState", materialPackingData.getStockState());
bindMap.put("stockState", materialPackingData.getStockState());
bindMap.put("OldStockState", materialPackingData.getOldStockState());
bindMap.put("HoldState", materialPackingData.getHoldState());
bindMap.put("AreaName", materialPackingData.getAreaName());