波次自动下发配置,

main
userName 2025-09-25 16:19:11 +08:00
parent 1e2d1ab989
commit 811d96064b
38 changed files with 1143 additions and 103 deletions

View File

@ -16,8 +16,8 @@
# $Id: log4j.properties,v 1.3 2010/06/01 09:25:32 peng.lei Exp $
log4j.rootCategory=INFO,stdout,R
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
#log4j.logger.org.hibernate.SQL=DEBUG
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

View File

@ -11,7 +11,9 @@ import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@ -48,14 +50,42 @@ public class PostTest {
// }fe80::2db:5cff:feea:c24f%wlan0
// String str= getMacByIP("192.168.2.88");
// "10-12-04".substring(2, 3);
Date date=new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int month = calendar.get(Calendar.MONTH)+1;
int year=calendar.get(Calendar.YEAR);
logger.info("date---"+date);
logger.info("month---"+month);
logger.info("year---"+year);
// Date date=new Date();
//
// SimpleDateFormat hms = new SimpleDateFormat("HH:mm");
//
// String s=hms.format(date);
// logger.info("date--11-"+s);
//
//
// Calendar calendar = Calendar.getInstance();
// calendar.setTime(date);
// int month = calendar.get(Calendar.MONTH)+1;
// int year=calendar.get(Calendar.YEAR);
// logger.info("date---"+date);
// logger.info("month---"+month);
// logger.info("year---"+year);
// 获取当前日期
LocalDate today = LocalDate.now();
// 获取当前是周几
DayOfWeek dayOfWeek = today.getDayOfWeek();
System.out.println("今天是: " + today);
System.out.println("今天是周: " + dayOfWeek);
// 检查是否为工作日(周一到周五)
if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) {
System.out.println("今天是工作日,执行任务...");
// 这里放置需要在工作日执行的代码
} else {
System.out.println("今天是周末,不执行任务。");
}
// String ts="10-11-02";
// logger.info(ts.substring(6, 2));
// String input = "hello123456";

View File

@ -36,7 +36,7 @@
<!-- 下发agv任务 -->
<!-- <ref bean="autoAutoBigTaskTrigger"/> -->
<!-- 定时播种墙各种下发任务 -->
<!-- <ref bean="createSeedWallTrigger"/> -->
<ref bean="createSeedWallTrigger"/>
<!-- 货架区返库 -->
<!-- <ref bean="autoReturnHjTrigger"/> -->
<!-- 立库任务下发 出库-->
@ -45,10 +45,24 @@
<!-- <ref bean="autoInLibraryTaskTrigger"/> -->
<!-- 有效期料号发送邮件-->
<!-- <ref bean="wmsSendEamilTrigger"/> -->
<!-- 自动创建波次-->
<!-- <ref bean="autoWaveDocTrigger"/> -->
</list>
</property>
</bean>
<!-- 自动创建波次 -->
<bean id="autoWaveDoc" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="waveDocManager"/>
<property name="targetMethod" value="newAutomaticWaveDoc"/>
<property name="concurrent" value="false" />
</bean>
<bean id="autoWaveDocTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="autoWaveDoc"/>
<property name="cronExpression">
<value> 0 0/01 * * * ? </value>
</property>
</bean>
<!-- 下发agv任务 -->
<bean id="autoAutoBigTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="itemJobLauncher"/>

View File

@ -266,7 +266,7 @@ public class QueryAction extends AbstractAction implements ApplicationContextAwa
}
public TableConfig buildGrid(TableConfig tableConfig) {
log.info("------------------------------------------------------------------------------------------------开始查询------------------------------------------------------------------------------------------------: ");
// log.info("------------------------------------------------------------------------------------------------开始查询------------------------------------------------------------------------------------------------: ");
Object controlResult = actionControlTurnExcute(tableConfig.getPageId(), new Object[]{tableConfig});
if (controlResult != null) {
return (TableConfig) controlResult;

View File

@ -0,0 +1,66 @@
package com.dev.swms.server.model.TaskRemind;
import java.util.Date;
import com.dev.energy.server.model.Entity;
public class TaskRemind extends Entity{
/**
*
*/
private static final long serialVersionUID = -189880164514947907L;
private Long userId;//用户id
private String title;//标题
private String content;//推送内容
private String status;//状态
private String createName;
private Date createTime;
private Date remindTime;//推送时间
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCreateName() {
return createName;
}
public void setCreateName(String createName) {
this.createName = createName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getRemindTime() {
return remindTime;
}
public void setRemindTime(Date remindTime) {
this.remindTime = remindTime;
}
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.dev.swms.server.model.TaskRemind.TaskRemind"
table="Task_Remind">
<id name="id" column="ID" type="long">
<generator class="native">
<param name="sequence">wms_Task_Remind</param>
<param name="parameters">START WITH 1000</param>
</generator>
</id>
<property name="userId" type="long">
<column name="userId" length="50" />
</property>
<property name="title" type="string">
<column name="title" length="100" />
</property>
<property name="content" type="string">
<column name="content" length="500" />
</property>
<property name="status" type="string">
<column name="status" length="50" />
</property>
<property name="createName" type="string">
<column name="createName" length="100" />
</property>
<property name="createTime" type="timestamp" column="createTime" />
<property name="remindTime" type="timestamp" column="remindTime" />
</class>
</hibernate-mapping>

View File

@ -76,6 +76,7 @@ public class CountPlan extends Entity {
private int finishNo;//完成行数
private boolean beWarehous;//是否入库
private boolean beOutbound;//是否出库
// private boolean bebarCode;//是否序列号
public boolean isBeWarehous() {

View File

@ -17,7 +17,7 @@ public class PlantLocation extends Entity{
private String description;
/**位置大楼*/
private String locFloor;
/**是否入库登记*/
/**是否不良品入库登记*/
private boolean beRegister=false;
/**是否优先入波*/
private boolean bePriorityWave=false;

View File

@ -0,0 +1,224 @@
package com.dev.swms.server.model.shipping;
import com.dev.energy.server.model.Entity;
public class AutomaticWaveDoc extends Entity{
/**
*
*/
private static final long serialVersionUID = 6557962882061079762L;
private int hour1=0;//小时
private int minute1=0;//分钟
private Boolean beEnabled1=false;//是否启用
private int hour2=0;//小时
private int minute2=0;//分钟
private Boolean beEnabled2=false;//是否下发CRS
private int hour3=0;//小时
private int minute3=0;//分钟
private Boolean beEnabled3=false;//是否启用
private int hour4=0;//小时
private int minute4=0;//分钟
private Boolean beEnabled4=false;//是否启用
private int hour5=0;//小时
private int minute5=0;//分钟
private Boolean beEnabled5=false;//是否启用
private int hour6=0;//小时
private int minute6=0;//分钟
private Boolean beEnabled6=false;//是否启用
private int hour7=0;//小时
private int minute7=0;//分钟
private Boolean beEnabled7=false;//是否启用
private int hour8=0;//小时
private int minute8=0;//分钟
private Boolean beEnabled8=false;//是否启用
private int hour9=0;//小时
private int minute9=0;//分钟
private Boolean beEnabled9=false;//是否启用
private int hour10=0;//小时
private int minute10=0;//分钟
private Boolean beEnabled10=false;//是否启用
public int getHour1() {
return hour1;
}
public void setHour1(int hour1) {
this.hour1 = hour1;
}
public int getMinute1() {
return minute1;
}
public void setMinute1(int minute1) {
this.minute1 = minute1;
}
public Boolean getBeEnabled1() {
return beEnabled1;
}
public void setBeEnabled1(Boolean beEnabled1) {
this.beEnabled1 = beEnabled1;
}
public int getHour2() {
return hour2;
}
public void setHour2(int hour2) {
this.hour2 = hour2;
}
public int getMinute2() {
return minute2;
}
public void setMinute2(int minute2) {
this.minute2 = minute2;
}
public Boolean getBeEnabled2() {
return beEnabled2;
}
public void setBeEnabled2(Boolean beEnabled2) {
this.beEnabled2 = beEnabled2;
}
public int getHour3() {
return hour3;
}
public void setHour3(int hour3) {
this.hour3 = hour3;
}
public int getMinute3() {
return minute3;
}
public void setMinute3(int minute3) {
this.minute3 = minute3;
}
public Boolean getBeEnabled3() {
return beEnabled3;
}
public void setBeEnabled3(Boolean beEnabled3) {
this.beEnabled3 = beEnabled3;
}
public int getHour4() {
return hour4;
}
public void setHour4(int hour4) {
this.hour4 = hour4;
}
public int getMinute4() {
return minute4;
}
public void setMinute4(int minute4) {
this.minute4 = minute4;
}
public Boolean getBeEnabled4() {
return beEnabled4;
}
public void setBeEnabled4(Boolean beEnabled4) {
this.beEnabled4 = beEnabled4;
}
public int getHour5() {
return hour5;
}
public void setHour5(int hour5) {
this.hour5 = hour5;
}
public int getMinute5() {
return minute5;
}
public void setMinute5(int minute5) {
this.minute5 = minute5;
}
public Boolean getBeEnabled5() {
return beEnabled5;
}
public void setBeEnabled5(Boolean beEnabled5) {
this.beEnabled5 = beEnabled5;
}
public int getHour6() {
return hour6;
}
public void setHour6(int hour6) {
this.hour6 = hour6;
}
public int getMinute6() {
return minute6;
}
public void setMinute6(int minute6) {
this.minute6 = minute6;
}
public Boolean getBeEnabled6() {
return beEnabled6;
}
public void setBeEnabled6(Boolean beEnabled6) {
this.beEnabled6 = beEnabled6;
}
public int getHour7() {
return hour7;
}
public void setHour7(int hour7) {
this.hour7 = hour7;
}
public int getMinute7() {
return minute7;
}
public void setMinute7(int minute7) {
this.minute7 = minute7;
}
public Boolean getBeEnabled7() {
return beEnabled7;
}
public void setBeEnabled7(Boolean beEnabled7) {
this.beEnabled7 = beEnabled7;
}
public int getHour8() {
return hour8;
}
public void setHour8(int hour8) {
this.hour8 = hour8;
}
public int getMinute8() {
return minute8;
}
public void setMinute8(int minute8) {
this.minute8 = minute8;
}
public Boolean getBeEnabled8() {
return beEnabled8;
}
public void setBeEnabled8(Boolean beEnabled8) {
this.beEnabled8 = beEnabled8;
}
public int getHour9() {
return hour9;
}
public void setHour9(int hour9) {
this.hour9 = hour9;
}
public int getMinute9() {
return minute9;
}
public void setMinute9(int minute9) {
this.minute9 = minute9;
}
public Boolean getBeEnabled9() {
return beEnabled9;
}
public void setBeEnabled9(Boolean beEnabled9) {
this.beEnabled9 = beEnabled9;
}
public int getHour10() {
return hour10;
}
public void setHour10(int hour10) {
this.hour10 = hour10;
}
public int getMinute10() {
return minute10;
}
public void setMinute10(int minute10) {
this.minute10 = minute10;
}
public Boolean getBeEnabled10() {
return beEnabled10;
}
public void setBeEnabled10(Boolean beEnabled10) {
this.beEnabled10 = beEnabled10;
}
}

View File

@ -93,7 +93,7 @@ public class PickTicketDetail extends AbstractMoveDocDetail {
private String strBill12;//机台号
private String strBill13; //receiver
private String strBill14; //SAP指定序列号值
private String strBill15; //加急入库标记(1)
private String strBill15; //加急入库标记(1)是否指定
private String strBill16; //交接位置
private String strBill17; //备注
private String strBill18; //申请人

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.dev.swms.server.model.shipping.AutomaticWaveDoc" table="Automatic_Wave_Doc">
<id name="id" column="ID" type="long">
<generator class="native">
<param name="sequence">wms_Automatic_Wave_Doc</param>
<param name="parameters">START WITH 1000</param>
</generator>
</id>
<property name="hour1" type="int" column="hour1" />
<property name="minute1" type="int" column="minute1" />
<property name="beEnabled1" type="boolean" column="be_Enabled1" />
<property name="hour2" type="int" column="hour2" />
<property name="minute2" type="int" column="minute2" />
<property name="beEnabled2" type="boolean" column="be_Enabled2" />
<property name="hour3" type="int" column="hour3" />
<property name="minute3" type="int" column="minute3" />
<property name="beEnabled3" type="boolean" column="be_Enabled3" />
<property name="hour4" type="int" column="hour4" />
<property name="minute4" type="int" column="minute4" />
<property name="beEnabled4" type="boolean" column="be_Enabled4" />
<property name="hour5" type="int" column="hour5" />
<property name="minute5" type="int" column="minute5" />
<property name="beEnabled5" type="boolean" column="be_Enabled5" />
<property name="hour6" type="int" column="hour6" />
<property name="minute6" type="int" column="minute6" />
<property name="beEnabled6" type="boolean" column="be_Enabled6" />
<property name="hour7" type="int" column="hour7" />
<property name="minute7" type="int" column="minute7" />
<property name="beEnabled7" type="boolean" column="be_Enabled7" />
<property name="hour8" type="int" column="hour8" />
<property name="minute8" type="int" column="minute8" />
<property name="beEnabled8" type="boolean" column="be_Enabled8" />
<property name="hour9" type="int" column="hour9" />
<property name="minute9" type="int" column="minute9" />
<property name="beEnabled9" type="boolean" column="be_Enabled9" />
<property name="hour10" type="int" column="hour10" />
<property name="minute10" type="int" column="minute10" />
<property name="beEnabled10" type="boolean" column="be_Enabled10" />
</class>
</hibernate-mapping>

View File

@ -7,6 +7,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.dev.energy.server.service.BaseManager;
import com.dev.swms.server.model.base.Location;
import com.dev.swms.server.model.base.ShiXiao;
import com.dev.swms.server.model.shipping.AutomaticWaveDoc;
@Transactional(readOnly = true)
public interface ShiXiaoManager extends BaseManager{
@ -27,4 +28,9 @@ public interface ShiXiaoManager extends BaseManager{
@Transactional
void deleteStock(List<Long> ids);
//新增
@Transactional
void addAutomaticWaveDoc(AutomaticWaveDoc aw);
}

View File

@ -2,11 +2,13 @@ package com.dev.swms.server.service.base.pojo;
import java.util.List;
import com.dev.energy.server.exception.BusinessException;
import com.dev.energy.server.service.pojo.DefaultBaseManager;
import com.dev.energy.server.service.security.UserManager;
import com.dev.energy.server.util.LocalizedMessage;
import com.dev.swms.server.model.base.ShiXiao;
import com.dev.swms.server.model.inventory.Stock;
import com.dev.swms.server.model.shipping.AutomaticWaveDoc;
import com.dev.swms.server.model.shipping.SeedWall;
import com.dev.swms.server.service.base.ShiXiaoManager;
import com.dev.swms.server.service.interfaceLog.WmsOperationHisManager;
@ -70,4 +72,20 @@ public class DefaultShiXiaoManager extends DefaultBaseManager implements ShiXiao
}
public void addAutomaticWaveDoc(AutomaticWaveDoc shixiao) {
String acttiveName="修改";
if(shixiao.isNew()) {
acttiveName="新建";
}
if(shixiao.getHour1()<0||shixiao.getHour1()>=24) {
throw new BusinessException("小时值输入错误,"+shixiao.getHour1());
}
if(shixiao.getMinute1()<0||shixiao.getMinute1()>=60) {
throw new BusinessException("分钟值输入错误,"+shixiao.getMinute1());
}
commonDao.store(shixiao);
wmsOperationHisManager.storeOperationHis(shixiao.getId(),shixiao.getHour1()+"", null,"", "波次执行时间", acttiveName,null,
null,0, 0,0, 0, "", "WMS");
}
}

View File

@ -186,7 +186,8 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
+ "(case when item.default_Warehouse_Area_ID is not NULL then item.default_Warehouse_Area_ID ELSE z.id END) as z_id,"
+ "item.volume,ad.BE_MARK_WEIGHT as beMarkWeight,item.FEE_TYPE,"
+ " item.be_Extend1,item.be_Extend2,asn.BILL_TYPE_ID,ad.strBill11,ad.bf_qty ,z.name as z_name,"
+ "z1.name as z1_name, item.be_Image_File as be_Image_File,bt.NAME as bt_name "
+ "z1.name as z1_name, item.be_Image_File as be_Image_File,bt.NAME as bt_name,"
+ "asn.sourceType as sourceType "
+ " from ASN_DETAIL ad "
+ " left join ASN asn on asn.id=ad.ASN_ID "
+ " left join ITEM item on item.id=ad.ITEM_ID "
@ -323,9 +324,12 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
obj.put("z_id", arrier[i++]==null?"":arrier[i-1]);
String zxmx="";
String billCode= arrier[26]==null?"":arrier[26].toString();//单据类型
logger.info("单据类型:"+billCode);
String sourceType=arrier[27]==null?"":arrier[27].toString();//SAP移位类型
double volume=Double.parseDouble(arrier[15].toString());
if(volume<=0&&!billCode.equals("移位单")&&!billCode.equals("转库单")){
if(volume<=0&&!billCode.equals("移位单")&&!billCode.equals("转库单")
&&!sourceType.equals("531")&&!sourceType.equals("Z66")
&&!sourceType.equals("301")&&!sourceType.equals("311")
&&!sourceType.equals("542")&&!sourceType.equals("315")){
zxmx="是";
}else{
zxmx="否";
@ -3810,6 +3814,7 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
if(taskId>0){
Task task=this.load(Task.class, taskId);
ItemKey ik=this.load(ItemKey.class, task.getItemKey().getId());
Item item=this.load(Item.class, ik.getItem().getId());
Location srcLoc =this.load(Location.class, task.getSrcLoc().getId());
WarehouseArea zone=this.load(WarehouseArea.class, srcLoc.getZone().getId());
@ -3842,6 +3847,13 @@ public class DefaultQueryAppManager extends DefaultBaseManager implements QueryA
}
data=array.toString();
status = "1";
List<String> socode= commonDao.findByQuery("select p.code from PlantLocation p where p.beRegister=1 ");
if(ik.getLotInfo().getPropC2()!=null&&socode.size()>0
&&socode.contains(ik.getLotInfo().getPropC2())) {
status="0";
msg=ik.getLotInfo().getPropC2()+"不能换库位拣货";
data="[]";
}
}else{
status = "2";
msg = "找不到相应记录!";

View File

@ -178,7 +178,7 @@ public interface InventoryManager extends BaseManager{
@Transactional
void manualMove(Long srcInventoryId, Long destLocationId,
double quantity, Long workerId);
double quantity, Long workerId,String ncr);
/**

View File

@ -791,12 +791,48 @@ public class DefaultInventoryManager extends DefaultBaseManager implements Inven
// locationManager.kuwei(list);
}
public void manualMove(Long srcInventoryId, Long destLocationId,
double quantity, Long workerId) {
double quantity, Long workerId,String ncr) {
Inventory srcInv=commonDao.load(Inventory.class, srcInventoryId);
Location deslocation=commonDao.load(Location.class, destLocationId);
Location strlocation=commonDao.load(Location.class, srcInv.getLocation().getId());
ItemKey itemKey=commonDao.load(ItemKey.class, srcInv.getItemKey().getId());
Item item=commonDao.load(Item.class, itemKey.getItem().getId());
boolean beNcr=false;//是否不良品
double NCRqty=quantity;
//验证不良品库存
if(itemKey.getLotInfo()!=null&&itemKey.getLotInfo().getPropC2()!=null
&&itemKey.getLotInfo().getPropC2().length()>0) {
String hqls="select p.id from PlantLocation p where p.code='"+itemKey.getLotInfo().getPropC2()+"'"
+ " and p.beRegister=1 ";
List<Long> listplan= commonDao.findByQuery(hqls);
if(listplan.size()>0) {
if(ncr==null||ncr.equals("")) {
throw new BusinessException("不良品LOC需要输入NCR");
}
String wsql="select sum(r.receivedQuantity-r.shippedQuantity) from ReceivingInventory r where r.itemKey.item.id= "
+ item.getId()+" and r.location.id="+strlocation.getId()
+" and r.strBill1='"+ncr+"' and r.receivedQuantity>r.shippedQuantity ";
if(srcInv.getBarCode()!=null&&srcInv.getBarCode().length()>0) {
wsql+=" and r.barCode='"+srcInv.getBarCode()+"'";
}
List<Double> rdsqty=commonDao.findByQuery(wsql);
if(rdsqty.size()>0) {
double qys=0;
if(rdsqty.get(0)!=null) {
qys=rdsqty.get(0);
}
if(quantity>qys) {
throw new BusinessException(ncr+",NCR库存数"+qys);
}
}else {
throw new BusinessException(ncr+",NCR号输入错误");
}
}
beNcr=true;
}
if(srcInv.getStatus().equals("待上架")) {
throw new BusinessException("待上架库存不能移位!");
}
@ -986,9 +1022,53 @@ public class DefaultInventoryManager extends DefaultBaseManager implements Inven
itemKey, srcInv.getStorageDate(),
srcInv.getSOI(), quantity, null, srcInv.getStatus(), srcInv.getId(), "移位",
null,workerId,srcInv.getBarCode(),srcInv.getLocation(),null,null);
//不良品LOC移位
if(beNcr) {
if(ncr!=null&&!ncr.equals("")) {
String wsql=" from ReceivingInventory r where r.itemKey.item.id= "
+item.getId()+" and r.location.id="+strlocation.getId()
+" and r.strBill1='"+ncr+"' and r.receivedQuantity>r.shippedQuantity"
+ " ";
if(srcInv.getBarCode()!=null&&srcInv.getBarCode().length()>0) {
wsql+=" and r.barCode='"+srcInv.getBarCode()+"'";
}
List<ReceivingInventory> rdsqty=commonDao.findByQuery(wsql);
if(rdsqty.size()>0) {
for(ReceivingInventory rd:rdsqty) {
double ncrql=rd.getReceivedQuantity()-rd.getShippedQuantity();
if(ncrql<=NCRqty) {
rd.setLocation(deslocation);
NCRqty=NCRqty-ncrql;
}else {
rd.setReceivedQuantity(rd.getReceivedQuantity()-NCRqty);
ReceivingInventory r = EntityFactory.getEntity(ReceivingInventory.class);
r.setLocation(deslocation);
r.setItemKey(rd.getItemKey());
r.setReceivedQuantity(NCRqty);
r.setReceiveDate(rd.getReceiveDate());
r.setOperator(rd.getOperator());
r.setReceivedQuantityMU(r.getReceivedQuantity());
r.setStrBill1(rd.getStrBill1());
r.setStrBill2(rd.getStrBill2());
r.setStrBill3(rd.getStrBill3());
r.setBarCode(rd.getBarCode());
commonDao.store(r);
}
commonDao.store(rd);
if(NCRqty<=0) {
break;
}
}
}
}
}
}
private Stock getStockWithNew(Location location, String lp, PackageUnit unit, double quantity) {
Stock stock = null;
if (!StringUtils.isEmpty(lp)) {

View File

@ -1582,7 +1582,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
task.setItemKey(inventory.getItemKey());
@ -1653,7 +1653,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
@ -1678,11 +1678,13 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
}
public String getSubWorkOrer(String picktickCode,WarehouseArea warehouseArea,Item item){
public String getSubWorkOrer(Long pid,String picktickCode,WarehouseArea warehouseArea,Item item){
String code="";
if(warehouseArea.getId()==1765) {
if(item.getGoodType()!=null&&item.getGoodType().equals("大件")) {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where "
+ "t.pickTicketDetail.pickTicket.id="+pid+" and t.billCode like '"+picktickCode+"-%' "
+ " and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU and t.itemKey.item.goodType='大件' ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
@ -1691,24 +1693,27 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
code=bussinessCodeManager.getCodeForYmd(picktickCode+"-", 2);
}
}else {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where "
+ " t.pickTicketDetail.pickTicket.id="+pid+" and t.billCode like '"+picktickCode+"-%' "
+ "and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU and t.itemKey.item.goodType<>'大件' ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
code=t.getBillCode();
}else{
code=bussinessCodeManager.getCodeForYmd(picktickCode+"-", 2);
}
}
}else {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t "
+ "where t.pickTicketDetail.pickTicket.id="+pid
+ " and t.billCode like '"+picktickCode+"-%' "
+ "and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
code=t.getBillCode();
}else{
code=bussinessCodeManager.getCodeForYmd(picktickCode+"-", 2);
}
}
@ -2394,7 +2399,8 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
}else {
//工单发料可发LOC配置信息
String bsql=" from BillTypeConfig b where b.billType.id="+pt.getBillType().getId();
if(ptd.getNewLotInfo().getPropC9()!=null&&!ptd.getNewLotInfo().getPropC9().equals("")) {
if(ptd.getNewLotInfo()!=null&&ptd.getNewLotInfo().getPropC9()!=null
&&!ptd.getNewLotInfo().getPropC9().equals("")) {
bsql+=" and b.plantCode='"+ptd.getNewLotInfo().getPropC9()+"'";
}
List<BillTypeConfig> bts=commonDao.findByQuery(bsql);
@ -2506,7 +2512,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
@ -3132,7 +3138,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
//单个子任务数量
if(qty>0) {
List<Integer> tas=commonDao.findByQuery("select t.hs from PickTicketTaskView t where t.pickTicket.id="+ptd.getPickTicket().getId()
@ -3427,7 +3433,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
//单个子任务数量
if(qty>0) {
List<Integer> tas=commonDao.findByQuery("select t.hs from PickTicketTaskView t where t.pickTicket.id="+ptd.getPickTicket().getId()
@ -3560,7 +3566,11 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
pt.setStatus(PickTicketStatus.CHECK);
commonDao.store(pt);
}
if(UserHolder.getUser()!=null) {
t.setStrBill1(UserHolder.getUser().getName());
}else {
t.setStrBill1("系统自动");
}
t.setDateBill1(new Date());
t.setAgvStatus(1);//1=可以分配分拨墙并下发AGV
t.setYc_qty(t.getPlanQuantityMU());
@ -4111,8 +4121,7 @@ public class DefaultAutoAllocator extends DefaultBaseManager implements AutoAllo
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
task.setItemKey(inventory.getItemKey());

View File

@ -336,7 +336,7 @@ public interface WaveDocManager extends BaseManager {
void hotWaveDoc(Date date1,Date date2 ,Integer lxqQty,Integer longtiem,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode
,boolean ddq1,boolean ddq2,boolean ddq3,boolean ddq4,boolean ddq5,boolean ddq6,boolean ddq7,boolean ddq8,boolean ddq9,Integer taskqty,boolean beUrgent);
void newHotWaveDoc(Date date1,Date date2 ,Integer lxqQty,Integer longtiem,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode
WaveDoc newHotWaveDoc(Date date1,Date date2 ,Integer lxqQty,Integer longtiem,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode
,boolean ddq1,boolean ddq2,boolean ddq3,boolean ddq4,boolean ddq5,boolean ddq6,boolean ddq7,boolean ddq8,boolean ddq9,Integer taskqty,boolean beUrgent);
@Transactional
@ -349,8 +349,8 @@ public interface WaveDocManager extends BaseManager {
void alloteWaveDoc(long waveDocId,boolean lx1,boolean lx2,boolean lx3,boolean lx4,boolean lx5,boolean lx6,boolean lx7,boolean lx8,boolean lx9,boolean lx10,boolean lx11,boolean lx12,boolean lx13,boolean lx14,boolean lx15,boolean hj1,boolean hj2,boolean hj3,boolean hj4,boolean hj5,boolean hj6,boolean hj7,boolean lk1,boolean lk2,boolean lk3,boolean lk4,boolean lk5);
//定时任务自动创建
void newAutomaticWaveDoc();
}

View File

@ -2887,7 +2887,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
@ -2910,11 +2910,14 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
}
public String getSubWorkOrer(String picktickCode,WarehouseArea warehouseArea,Item item){
public String getSubWorkOrer(Long pid,String picktickCode,WarehouseArea warehouseArea,Item item){
String code="";
if(warehouseArea.getId()==1765) {
if(item.getGoodType()!=null&&item.getGoodType().equals("大件")) {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t "
+ "where t.pickTicketDetail.pickTicket.id="+pid
+ " and t.billCode like '"+picktickCode+"-%' "
+ "and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU and t.itemKey.item.goodType='大件' ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
@ -2924,7 +2927,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
code=bussinessCodeManager.getCodeForYmd(picktickCode+"-", 2);
}
}else {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t "
+ "where t.pickTicketDetail.pickTicket.id="+pid
+ " and t.billCode like '"+picktickCode+"-%' "
+ "and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU and t.itemKey.item.goodType<>'大件' ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
@ -2935,7 +2941,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
}
}
}else {
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t where t.billCode like '"+picktickCode+"-%' and t.srcLoc.zone.id="+warehouseArea.getId()+
Long count= (Long) commonDao.findByQuery(" select max(t.id) from Task t "
+ "where t.pickTicketDetail.pickTicket.id="+pid
+ " and t.billCode like '"+picktickCode+"-%' "
+ " and t.srcLoc.zone.id="+warehouseArea.getId()+
" and t.planQuantity>t.movedQuantityMU ").get(0);
if(count!=null&&count.longValue()>0){
Task t=this.load(Task.class,count);
@ -4429,6 +4438,10 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if(list1.size()>0) {
PlantLocation p=list1.get(0);
if(p.isBeRegister()) {
if(sqr==null||sqr.equals("")) {
throw new BusinessException(sqr+"不良品需要输入NCR");
}
String sql=" from ReceivingInventory r where r.itemKey.item.id="+ik.getItem().getId()
+" and r.itemKey.lotInfo.propC2='"+ik.getLotInfo().getPropC2()+"' "
+" and r.location.id="+task.getSrcLoc().getId()+" and r.strBill1='"+sqr+"'"
@ -4451,6 +4464,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
if(qty>=pickQty) {
r.setShippedQuantity(r.getShippedQuantity()+pickQty);
r.setPickDate(new Date());
commonDao.store(r);
pickQty=0;
}else {
@ -7085,11 +7099,17 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
@Override
public void updateWorker(long taskId, long workerId,String targetArea) {
Task task = commonDao.load(Task.class, taskId);
if(workerId>0) {
Worker w = commonDao.load(Worker.class, workerId);
task.setWorker1(w);
if(task.getAgvStatus()==0) {
task.setAgvStatus(1);
List<Task> tids=new ArrayList<Task>();
tids.add(task);
boolean SAPstatus= interfaceReqManager.wmsSapZhuantaihuichuang(tids, 0,"",1);//状态回传
if(!SAPstatus) {
task.setAgvStatus(1);
}
}
}
if(targetArea!=null&&targetArea.length()>0) {
@ -7705,7 +7725,7 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
Item item=commonDao.load(Item.class, ptd.getItem().getId());
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
task.setItemKey(inventory.getItemKey());
@ -7799,10 +7819,9 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
unQty -= allocateQty;
ptd.setAllocatedQuantity(ptd.getAllocatedQuantity()+ allocateQty);
commonDao.store(ptd);
Task task = EntityFactory.getEntity(Task.class);
task.setPickTicketDetail(ptd);
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setBillCode(getSubWorkOrer(ptd.getPickTicket().getId(),ptd.getPickTicket().getCode(),inventory.getLocation().getZone(),item));
task.setCode(TimeNumberUtils.getTaskCode());
task.setType(TaskType.MV_PICKTICKET);
@ -8702,11 +8721,21 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Integer lxqQty,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode,Integer taskqty,Integer logic) {
WaveDoc waveDoc=EntityFactory.getEntity(WaveDoc.class);
waveDoc.setCode(TimeNumberUtils.getwaveDocCode());
waveDoc.setWarehouse(WarehouseHolder.getWarehouse());
if(WarehouseHolder.getWarehouse()!=null) {
waveDoc.setWarehouse(WarehouseHolder.getWarehouse());
}else {
waveDoc.setWarehouse(commonDao.load(Warehouse.class, 1L));
}
waveDoc.setStatus(WaveDocStatus.OPEN);
waveDoc.setCreateDate(new Date());
waveDoc.setQuantity(waveDoc.getQuantity());
waveDoc.setUserName(UserHolder.getUser().getName());
if(UserHolder.getUser()!=null) {
waveDoc.setUserName(UserHolder.getUser().getName());
}else {
waveDoc.setUserName("自动");
}
waveDoc.setUpdateTime(new Date());
waveDoc.setBePopular(ddq);
waveDoc.setLkqQty(lkqQty);
@ -8754,11 +8783,20 @@ public class DefaultPickTicketManager extends DefaultBaseManager implements Pick
Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode,Integer taskqty,Integer logic) {
WaveDoc waveDoc=EntityFactory.getEntity(WaveDoc.class);
waveDoc.setCode(TimeNumberUtils.getwaveDocCode());
waveDoc.setWarehouse(WarehouseHolder.getWarehouse());
if(WarehouseHolder.getWarehouse()!=null) {
waveDoc.setWarehouse(WarehouseHolder.getWarehouse());
}else {
waveDoc.setWarehouse(commonDao.load(Warehouse.class, 1L));
}
waveDoc.setStatus(WaveDocStatus.OPEN);
waveDoc.setCreateDate(new Date());
waveDoc.setQuantity(waveDoc.getQuantity());
waveDoc.setUserName(UserHolder.getUser().getName());
if(UserHolder.getUser()!=null) {
waveDoc.setUserName(UserHolder.getUser().getName());
}else {
waveDoc.setUserName("系统自动");
}
waveDoc.setUpdateTime(new Date());
waveDoc.setBePopular(ddq);
waveDoc.setLkqQty(lkqQty);

View File

@ -5,6 +5,9 @@ import org.apache.log4j.Logger;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -54,6 +57,7 @@ import com.dev.swms.server.model.rules.CompanyWorkRule;
import com.dev.swms.server.model.rules.SortRule;
import com.dev.swms.server.model.rules.WaveRule;
import com.dev.swms.server.model.rules.WorkModel;
import com.dev.swms.server.model.shipping.AutomaticWaveDoc;
import com.dev.swms.server.model.shipping.CageInfo;
import com.dev.swms.server.model.shipping.PickTicket;
import com.dev.swms.server.model.shipping.PickTicketDetail;
@ -68,6 +72,7 @@ import com.dev.swms.server.service.interfaceLog.JdbcManager;
import com.dev.swms.server.service.inventory.InventoryManager;
import com.dev.swms.server.service.picking.allocate.AutoAllocator;
import com.dev.swms.server.service.sequence.BussinessCodeManager;
import com.dev.swms.server.service.shipping.NewWaveManager;
import com.dev.swms.server.service.shipping.PickTicketManager;
import com.dev.swms.server.service.shipping.WaveDocManager;
import com.dev.swms.server.utils.DateUtil;
@ -94,16 +99,19 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements
protected final ItemManager itemManager;
protected final BussinessCodeManager bussinessCodeManager;
protected final JdbcManager jdbcManager;
protected final NewWaveManager newWaveManager;
protected static Date hotWaveDate=new Date();//波次创建,判断不能同时新建
protected static boolean hotWave=true;//波次创建,判断不能同时新建
public DefaultWaveDocManager(PickTicketManager pickTicketManager, AutoAllocator autoAllocator,
InventoryManager inventoryManager, ItemManager itemManager,BussinessCodeManager bussinessCodeManager,JdbcManager jdbcManager) {
InventoryManager inventoryManager, ItemManager itemManager,
BussinessCodeManager bussinessCodeManager,JdbcManager jdbcManager,NewWaveManager newWaveManager) {
this.pickTicketManager = pickTicketManager;
this.autoAllocator = autoAllocator;
this.inventoryManager = inventoryManager;
this.itemManager=itemManager;
this.bussinessCodeManager = bussinessCodeManager;
this.jdbcManager = jdbcManager;
this.newWaveManager = newWaveManager;
}
@SuppressWarnings("unchecked")
public void createWaveDoc() {
@ -2712,7 +2720,7 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements
}
public void newHotWaveDoc(Date date1,Date date2 ,Integer longtiem,Integer lxqQty,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode
public WaveDoc newHotWaveDoc(Date date1,Date date2 ,Integer longtiem,Integer lxqQty,Integer hjqQty,Integer lkqQty,boolean ddq,String pickCode
,boolean ddq1,boolean ddq2,boolean ddq3,boolean ddq4,boolean ddq5,boolean ddq6,boolean ddq7,boolean ddq8,boolean ddq9,Integer taskQty,boolean beUrgent) {
Date date=new Date();
@ -2947,6 +2955,8 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements
}
hotWave=true;
hotWaveDate=DateUtil.formatStrToDateYMD("2023-02-02");
return waveDoc;
}
@ -4208,4 +4218,110 @@ public class DefaultWaveDocManager extends DefaultBaseManager implements
autoAllocator.initiandcallAGV(waveDocId, lxq, hjq, lkq);//任务分配工作站
}
}
public void newAutomaticWaveDoc() {
// 获取当前日期
LocalDate today = LocalDate.now();
// 获取当前是周几
DayOfWeek dayOfWeek = today.getDayOfWeek();
if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) {
System.out.println("今天是工作日,执行任务...");
Date date=new Date();
// 格式化时间
SimpleDateFormat hms = new SimpleDateFormat("HH:mm");
String s=hms.format(date);
logger.info("------自动创建波次------"+s);
String hql=" from AutomaticWaveDoc aw where aw.beEnabled1=true order by aw.hour1 ";
List<AutomaticWaveDoc> list=commonDao.findByQuery(hql);
if(list.size()>0) {
for(AutomaticWaveDoc aw:list) {
String htiem="";
if(aw.getHour1()<10) {
htiem="0"+aw.getHour1();
}else {
htiem=""+aw.getHour1();
}
if(aw.getMinute1()<10) {
htiem=htiem+":0"+aw.getMinute1();
}else {
htiem=htiem+":"+aw.getMinute1();
}
logger.info("------自动创建波次2----------------------"+htiem);
if(s.equals(htiem)) {
//查询料箱区还有多少任务未执行超过300就不创建波次
String hqlhs=" select t.id from Task t where t.srcLoc.zone.id=1763 "
+ " and t.planQuantity>0 and t.movedQuantityMU=0"
+ " and t.agvStatus='1' ";
List<Long> tasklist= commonDao.findByQuery(hqlhs);
logger.info("------自动创建波次2----------------------"+tasklist.size());
if(tasklist.size()<=300) {
// 格式化时间
SimpleDateFormat yms = new SimpleDateFormat("yyyy-MM-dd");
Date date1=new Date();
Date date2= new Date();
try {
date1 = yms.parse("2025-01-01");
date2=yms.parse("2025-12-31");
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
Integer lxqQty=10;
Integer longtiem=2;
Integer hjqQty=2;
Integer lkqQty=1;
Integer taskqty=30;
//创建波次
hotWaveDoc( date1, date2 , lxqQty, longtiem, hjqQty, lkqQty,true,null
,true,true,true,true,true,true,true,true,true, taskqty,false);
String wahql="select id from WaveDoc w where w.status='OPEN' "
+ " and w.userName='自动' order by id desc ";
logger.info("------自动创建波次3----------------------");
List<Long> wids= commonDao.findByQuery(wahql);
if(wids.size()>0) {
long waveDocId=wids.get(0);
boolean lx1=false;boolean lx2=true;
boolean lx3=true;boolean lx4=true;
boolean lx5=true;boolean lx6=true;
boolean lx7=true;boolean lx8=true;
boolean lx9=true;boolean lx10=true;
boolean lx11=true;
boolean lx12=true;boolean lx13=false;
boolean lx14=false;boolean lx15=false;
boolean hj1=false;boolean hj2=false;
boolean hj3=true; boolean hj4=true;
boolean hj5=false;boolean hj6=false;boolean hj7=false;
boolean lk1=false;boolean lk2=true;boolean lk3=false;
boolean lk4=false;boolean lk5=false;
logger.info("------自动创建波次4---------------------");
//是否下发CRS
if(aw.getBeEnabled2()) {
//分配工作站
newWaveManager.alloteWaveDoc( waveDocId, lx1, lx2, lx3,
lx4, lx5, lx6, lx7, lx8,
lx9, lx10, lx11, lx12, lx13,
lx14, lx15, hj1, hj2, hj3,
hj4, hj5, hj6, hj7, lk1,
lk2, lk3, lk4, lk5);
List<Long> swids=new ArrayList<Long>();
swids.add(waveDocId);
logger.info("------自动创建波次5---------------------");
autoAllocator.taskIssuedAgv(swids);//下发
}
logger.info("------自动创建波次6----------------------");
}
}
}
}
}
} else {
System.out.println("今天是周末,不执行任务。");
}
}
}

View File

@ -1058,9 +1058,14 @@ public class ASNReceiveServlet extends HttpServlet {
if(ASNDetails.size()>0){
ASNDetail ad=ASNDetails.get(0);
ASN asn=commonDao.load(ASN.class, ad.getAsn().getId());
BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
// BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
Item item=commonDao.load(Item.class, ad.getItem().getId());
if(!bt.getName().equals("移位单")&&!bt.getName().equals("转库单")) {
if(asn.getSourceType()!=null&&!asn.getSourceType().equals("531")
&&!asn.getSourceType().equals("Z66")
&&!asn.getSourceType().equals("301")
&&!asn.getSourceType().equals("311")
&&!asn.getSourceType().equals("542")
&&!asn.getSourceType().equals("315")) {
if(item.getVolume()<=0) {
status = "2";
msg = "料号没测量,请先测量! ";
@ -1138,7 +1143,6 @@ public class ASNReceiveServlet extends HttpServlet {
}
}else{
// logger.info(asnDetailId+"--整理1--+"+new Date());
Worker w= commonDao.load(Worker.class, userId);
List<String> result = Arrays.asList(asnDetailId.split(","));
double quantity=0;
@ -1152,8 +1156,12 @@ public class ASNReceiveServlet extends HttpServlet {
sqt=ad.getLotInfo().getPropC2();
}
ASN asn=commonDao.load(ASN.class, ad.getAsn().getId());
BillType bt=commonDao.load(BillType.class, asn.getBillType().getId());
if(!bt.getName().equals("移位单")&&!bt.getName().equals("转库单")) {
if(asn.getSourceType()!=null&&!asn.getSourceType().equals("531")
&&!asn.getSourceType().equals("Z66")
&&!asn.getSourceType().equals("301")
&&!asn.getSourceType().equals("311")
&&!asn.getSourceType().equals("542")
&&!asn.getSourceType().equals("315")) {
if(item.getVolume()<=0) {
status = "2";
msg = item.getCode()+"料号没测量,请先测量! ";
@ -1678,6 +1686,9 @@ public class ASNReceiveServlet extends HttpServlet {
}
}
}
//不良品LOC查询判断
/**2025-09-23
if(ncrCode!=null&&!ncrCode.equals("")) {
List<Inventory> Inventorys=commonDao.findByQuery(" from Inventory inv where inv.id in ("+invIds.toString()+") ");
ItemKey ik=null;
@ -1719,8 +1730,6 @@ public class ASNReceiveServlet extends HttpServlet {
String wsql="select sum(r.receivedQuantity-r.shippedQuantity) from ReceivingInventory r where r.itemKey.item.id= "
+ ik.getItem().getId()+" and r.location.id="+lc.getId()
+" and r.strBill1='"+ncrCode+"' and r.receivedQuantity>r.shippedQuantity ";
List<Double> rdsqty=commonDao.findByQuery(wsql);
if(rdsqty.size()>0) {
double qys=rdsqty.get(0);
@ -1736,6 +1745,7 @@ public class ASNReceiveServlet extends HttpServlet {
}
}
*/
}
if (flag==1) {
if(serials!=null&&serials.length()>0){
@ -1777,7 +1787,7 @@ public class ASNReceiveServlet extends HttpServlet {
}
InventoryManager inventoryManager = (InventoryManager) ac.getBean("inventoryManager");
inventoryManager.manualMove(inv.getId(), locId, inv.getQuantity()-inv.getQueuedQuantity(), userId);
inventoryManager.manualMove(inv.getId(), locId, inv.getQuantity()-inv.getQueuedQuantity(), userId,ncrCode);
if(inv.getStatus()!=null&&inv.getStatus().equals("整理中")) {
try {
@ -1812,6 +1822,8 @@ public class ASNReceiveServlet extends HttpServlet {
msg=serial+"不在这个库位上";
}
}
/**2025-09-23
//不良品移位
if(status.equals("1")&&ncrCode!=null&&!ncrCode.equals("")) {
for(String serial:result){
String wsql=" from ReceivingInventory r where r.itemKey.item.id= "
@ -1827,7 +1839,7 @@ public class ASNReceiveServlet extends HttpServlet {
}
}
*/
}else{
double Qty=0;
@ -1839,7 +1851,7 @@ public class ASNReceiveServlet extends HttpServlet {
List<Inventory> Inventorys2=commonDao.findByQuery(" from Inventory inv where inv.location.id = "+invs.getLocation().getId()+" and inv.quantity>0 ");
for(Inventory insdt:Inventorys2) {
InventoryManager inventoryManager = (InventoryManager) ac.getBean("inventoryManager");
inventoryManager.manualMove(insdt.getId(), locId, insdt.getQuantity()-insdt.getQueuedQuantity(), userId);
inventoryManager.manualMove(insdt.getId(), locId, insdt.getQuantity()-insdt.getQueuedQuantity(), userId,ncrCode);
status="1";
msg="操作成功!";
}
@ -1888,7 +1900,7 @@ public class ASNReceiveServlet extends HttpServlet {
}
}
InventoryManager inventoryManager = (InventoryManager) ac.getBean("inventoryManager");
inventoryManager.manualMove(inv.getId(), locId, inv.getQuantity()-inv.getQueuedQuantity(), userId);
inventoryManager.manualMove(inv.getId(), locId, inv.getQuantity()-inv.getQueuedQuantity(), userId,ncrCode);
if(inv.getStatus()!=null&&inv.getStatus().equals("整理中")) {
try {
//刷新新的容器库位
@ -1945,7 +1957,7 @@ public class ASNReceiveServlet extends HttpServlet {
}
InventoryManager inventoryManager = (InventoryManager) ac.getBean("inventoryManager");
inventoryManager.manualMove(inv.getId(), locId,qty1, userId);
inventoryManager.manualMove(inv.getId(), locId,qty1, userId,ncrCode);
if(inv.getStatus()!=null&&inv.getStatus().equals("整理中")) {
try {
@ -1981,6 +1993,9 @@ public class ASNReceiveServlet extends HttpServlet {
}
}
//不良品移位
/**2025-09-23
if(status.equals("1")&&ncrCode!=null&&!ncrCode.equals("")) {
String wsql=" from ReceivingInventory r where r.itemKey.item.id= "
+ ik1.getItem().getId()+" and r.location.id="+lc1.getId()
@ -2011,12 +2026,9 @@ public class ASNReceiveServlet extends HttpServlet {
break;
}
}
}
}
*/
}else{
msg="未找到相应记录!";
@ -2333,7 +2345,13 @@ public class ASNReceiveServlet extends HttpServlet {
WarehouseArea zone=commonDao.load(WarehouseArea.class, srcLoc.getZone().getId());
ItemKey ik=commonDao.load(ItemKey.class, task.getItemKey().getId());
Item item=commonDao.load(Item.class, ik.getItem().getId());
List<String> socode=commonDao.findByQuery("select p.code from PlantLocation p where p.beRegister=1 ");
if(ik.getLotInfo().getPropC2()!=null
&&socode.contains(ik.getLotInfo().getPropC2())) {
status="0";
msg=ik.getLotInfo().getPropC2()+"不能换库位拣货";
break;
}
Inventory inv=commonDao.load(Inventory.class, invId);
Location invLoc=commonDao.load(Location.class, inv.getLocation().getId());
WarehouseArea invzone=commonDao.load(WarehouseArea.class, invLoc.getZone().getId());

View File

@ -414,13 +414,14 @@ public class PickingServlet extends HttpServlet {
JSONArray array=new JSONArray();
String status = "0";
String msg = "";
String data = "";
String data = "[]";
try {
if (userId > 0) {
if (warehouseId > 0) {
// List<String> result = Arrays.asList(taskIds.split(","));
String sql="select t.pickTicketDetail.strBill14 from Task t where t.id in("+taskIds+")"
String sql="select t.barCode from "
+ " Task t where t.id in("+taskIds+") and t.pickTicketDetail.strBill15='1' "
+ " ";
List<String> ts=commonDao.findByQuery(sql);
if(ts.size()>0) {
@ -438,7 +439,7 @@ public class PickingServlet extends HttpServlet {
}else {
msg="";
status="0";
status="1";
}
} else {
msg = "无仓库信息!";

View File

@ -1232,4 +1232,9 @@
<value>com/dev/swms/server/model/base/materialFactory.hbm.xml</value>
</constructor-arg>
</bean>
<bean id="automaticWaveDocHibernateMappingResource" class="com.dev.energy.server.dao.hibernate.HibernateMappingResource">
<constructor-arg>
<value>com/dev/swms/server/model/shipping/automaticWaveDoc.hbm.xml</value>
</constructor-arg>
</bean>
</beans>

View File

@ -578,6 +578,9 @@
<constructor-arg index="5">
<ref bean="jdbcManager" />
</constructor-arg>
<constructor-arg index="6">
<ref bean="newWaveManager" />
</constructor-arg>
</bean>
</property>
</bean>

View File

@ -230,14 +230,14 @@ t.CREATE_TIME<'2025-04-01' AND
t.MOVED_QUANTITY_MU>0
GROUP BY i.id)
update ITEM set SALE_TIME =(select count(DISTINCT t.BILLCODE+lc.CODE+i.CODE)
//
update ITEM set heat_Six_Months =(select count(DISTINCT t.BILLCODE+lc.CODE+i.CODE)
from task t
left join ITEM_KEY ik on ik.id=t.ITEM_KEY_ID
left join item i on i.id=ik.ITEM_ID
left join LOCATION lc on lc.id=t.SRC_LOC_ID
where t.CREATE_TIME>='2025-06-01' AND
t.CREATE_TIME<'2025-07-01' AND ITEM.id=i.id and
where t.operate_TIME>='2025-03-01' AND
t.operate_TIME<'2025-09-01' AND ITEM.id=i.id and
t.MOVED_QUANTITY_MU>0 and t.TYPE='MV_PICKTICKET'
GROUP BY i.id)
@ -245,12 +245,19 @@ where ITEM.id in(select i1.id
from task t1
left join ITEM_KEY ik1 on ik1.id=t1.ITEM_KEY_ID
left join item i1 on i1.id=ik1.ITEM_ID
where t1.CREATE_TIME>='2025-06-01' AND
t1.CREATE_TIME<'2025-07-01' AND
where t1.operate_TIME>='2025-03-01' AND
t1.operate_TIME<'2025-09-01' AND
t1.MOVED_QUANTITY_MU>0 and t1.TYPE='MV_PICKTICKET'
GROUP BY i1.id);
update ITEM set SALE_TIME=1 where SALE_TIME is null;
UPDATE ITEM SET SALE_TIME=1 WHERE heat_Six_Months IS NULL;
GO
UPDATE ITEM SET heat_Three_Months=1 WHERE heat_Three_Months IS NULL;
GO
UPDATE ITEM SET heat_Six_Months=1 WHERE heat_Six_Months IS NULL;
------20250709
@ -555,7 +562,7 @@ item.volume as 体积 ,
left join position p on p.id=item.POSITION_ID
---------------2025-08-30
ALTER TABLE Receiving_Inventory add pick_Date DATE NULL;
ALTER TABLE Receiving_Inventory add pick_Date datetime NULL;
GO
@ -565,4 +572,53 @@ update item set largeWeight=volume where volume>0 and be_Image_File=0;
update item set volume=0 where volume>0 and be_Image_File=0;
----------2025-09-10
CREATE TABLE [dbo].[Automatic_Wave_Doc] (
[ID] numeric(19) IDENTITY(1,1) NOT NULL,
[hour1] int NULL,
[minute1] int NULL,
[be_Enabled1] tinyint NULL,
[hour2] int NULL,
[minute2] int NULL,
[be_Enabled2] tinyint NULL,
[hour3] int NULL,
[minute3] int NULL,
[be_Enabled3] tinyint NULL,
[hour4] int NULL,
[minute4] int NULL,
[be_Enabled4] tinyint NULL,
[hour5] int NULL,
[minute5] int NULL,
[be_Enabled5] tinyint NULL,
[hour6] int NULL,
[minute6] int NULL,
[be_Enabled6] tinyint NULL,
[hour7] int NULL,
[minute7] int NULL,
[be_Enabled7] tinyint NULL,
[hour8] int NULL,
[minute8] int NULL,
[be_Enabled8] tinyint NULL,
[hour9] int NULL,
[minute9] int NULL,
[be_Enabled9] tinyint NULL,
[hour10] int NULL,
[minute10] int NULL,
[be_Enabled10] tinyint NULL,
CONSTRAINT [PK__Automati__3214EC27832C79F0] PRIMARY KEY CLUSTERED ([ID])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[Automatic_Wave_Doc] SET (LOCK_ESCALATION = TABLE)

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<editPage id="editAutomaticWaveDocPage" title="波次执行时间"
entityClass="com.dev.swms.server.model.shipping.AutomaticWaveDoc" width="500"
height="310">
<inputUIs>
<hidden id="aw.id" reserve="false" />
<text id="aw.hour1" title="时间(时)" row="1" col="1" width="73"
readOnly="false" required="true" reserve="false" forceOverride="false"
inVisible="false" length="100" trimSpace="true" isPrecision="true" />
<text id="aw.minute1" title="时间(分)" row="1" col="2" width="73"
readOnly="false" required="true" reserve="false" forceOverride="false"
inVisible="false" length="100" trimSpace="true" isPrecision="true" />
<checkbox id="aw.beEnabled1" title="是否开启" row="1" col="3" defaultValue="false"
span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" />
<checkbox id="aw.beEnabled2" title="是否下发RCS" row="1" col="3" defaultValue="false"
span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" />
<!-- <text id="aw.hour2" title="时间(时)" row="2" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute2" title="时间(分)" row="2" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled2" title="是否开启" row="2" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour3" title="时间(时)" row="3" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute3" title="时间(分)" row="3" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled3" title="是否开启" row="3" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour4" title="时间(时)" row="4" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute4" title="时间(分)" row="4" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled4" title="是否开启" row="4" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour5" title="时间(时)" row="5" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute5" title="时间(分)" row="5" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled5" title="是否开启" row="5" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour6" title="时间(时)" row="6" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute6" title="时间(分)" row="6" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled6" title="是否开启" row="6" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour7" title="时间(时)" row="7" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute7" title="时间(分)" row="7" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled7" title="是否开启" row="7" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour8" title="时间(时)" row="8" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute8" title="时间(分)" row="8" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled8" title="是否开启" row="8" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour9" title="时间(时)" row="9" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute9" title="时间(分)" row="9" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled9" title="是否开启" row="9" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
<!-- <text id="aw.hour10" title="时间(时)" row="10" col="1" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <text id="aw.minute10" title="时间(分)" row="10" col="2" width="173" -->
<!-- readOnly="false" required="true" reserve="false" forceOverride="false" -->
<!-- inVisible="false" length="100" trimSpace="true" isPrecision="true" /> -->
<!-- <checkbox id="aw.beEnabled10" title="是否开启" row="10" col="3" defaultValue="false" -->
<!-- span="1" readOnly="false" required="false" reserve="false" forceOverride="true" inVisible="false" /> -->
</inputUIs>
<buttons>
<commit id="save" title="save" enableType="none" invisible="false">
<mappings>
<mapping id="wa" className="com.dev.swms.server.model.shipping.AutomaticWaveDoc" />
</mappings>
<actions>
<action managerName="shiXiaoManager" methodName="addAutomaticWaveDoc"
parameter="wa" />
</actions>
<forwards>
<forward name="refreshParent" newEnabled="true"
editEnabled="true" />
<forward name="resetWindow" newEnabled="true" editEnabled="false" />
</forwards>
</commit>
</buttons>
</editPage>
</pages>

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<maintainPage id="maintainAutomaticWaveDocPage" title="波次执行时间" autoQuery="false">
<search>
<inputUIs>
<!-- <list id="shixiao.locationStorage.id" title="工作站" row="0" col="1"
span="1" width="120" readOnly="false" required="false" reserve="false" forceOverride="true"
> <hql><![CDATA[select locationStorage.id, locationStorage.name from LocationStorage
locationStorage where 1=1 ]]></hql> </list> -->
</inputUIs>
</search>
<datasource type="hql"><![CDATA[ SELECT
aw.id,
aw.hour1,
aw.minute1,
aw.beEnabled1,
aw.beEnabled2
FROM AutomaticWaveDoc aw
where 1=1
/~shixiao.warehouseArea.id: and warehouseArea.id = {shixiao.warehouseArea.id} ~/
/~shixiao.disabled: and shixiao.disabled = {shixiao.disabled} ~/
/~shixiao.locationStorage.id : and locationStorage.id = {shixiao.locationStorage.id}~/
order by aw.hour1 ]]></datasource>
<columns>
<column id="aw.id" title="序号" visible="false"
horizonAlign="center" verticalAlign="middle" />
<!-- <column id="locationStorage.name" title="工作站号" visible="true" width="120"
horizonAlign="center" /> -->
<column id="aw.hour1" title="时间(时)" visible="true" width="70"
horizonAlign="center" />
<column id="aw.minute1" title="时间(分)" visible="true" width="80"
horizonAlign="center" verticalAlign="middle" />
<column id="aw.beEnabled1" title="是否开启" visible="true"
width="80" horizonAlign="center" verticalAlign="middle"
format="booleanFormat" formatParam="disabled" />
<column id="aw.beEnabled2" title="是否下发RCS" visible="true"
width="80" horizonAlign="center" verticalAlign="middle"
format="booleanFormat" formatParam="disabled" />
<!-- <column id="aw.hour2" title="2阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute2" title="2阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled2" title="2阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour3" title="3阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute3" title="3阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled3" title="3阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour4" title="4阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute4" title="4阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled4" title="4阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour5" title="5阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute5" title="5阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled5" title="5阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour6" title="6阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute6" title="6阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled6" title="6阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour7" title="7阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute7" title="7阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled7" title="7阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour8" title="8阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute8" title="8阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled8" title="8阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour9" title="98阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute9" title="9阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled9" title="9阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
<!-- <column id="aw.hour10" title="10阶段时间(时)" visible="true" width="70" -->
<!-- horizonAlign="center" /> -->
<!-- <column id="aw.minute10" title="10阶段时间(分)" visible="true" width="80" -->
<!-- horizonAlign="center" verticalAlign="middle" /> -->
<!-- <column id="aw.beEnabled10" title="10阶是否开启" visible="true" -->
<!-- width="80" horizonAlign="center" verticalAlign="middle" -->
<!-- format="booleanFormat" formatParam="disabled" /> -->
</columns>
<buttons>
<popup id="new" title="new" enableType="none" invisible="false"
containId="false" pageId="editAutomaticWaveDocPage" />
<popup id="modify" title="modify" enableType="single"
invisible="false" containId="true" pageId="editAutomaticWaveDocPage" />
<!-- <commit id="delete" title="删除" enableType="multi" -->
<!-- invisible="false" confirmMessage="editItemDetailPage.confirm.delete"> -->
<!-- <mappings> -->
<!-- <mapping id="ids" className="list" /> -->
<!-- </mappings> -->
<!-- <actions> -->
<!-- <action managerName="shiXiaoManager" methodName="deleteStock" -->
<!-- parameter="ids" /> -->
<!-- </actions> -->
<!-- <forwards> -->
<!-- <forward name="refreshWindow" newEnabled="true" -->
<!-- editEnabled="true" /> -->
<!-- </forwards> -->
<!-- </commit> -->
</buttons>
</maintainPage>
</pages>

View File

@ -30,7 +30,7 @@
round(signFile.width,2),
round(signFile.height,2),
round(signFile.weight,2),
round(signFile.volume,6),
cast(signFile.volume as string),
signFile.packNumber,
signFile.remark,
'look',

View File

@ -4,7 +4,6 @@
<maintainPage id="maintainShiXiaoPage" title="库区作业时效管理"
autoQuery="false">
<search>
<inputUIs>
<!-- <list id="shixiao.locationStorage.id" title="工作站" row="0" col="1"
span="1" width="120" readOnly="false" required="false" reserve="false" forceOverride="true"

View File

@ -72,7 +72,15 @@
<text id="inventory.propC3" title="特殊标记" row="5" col="2"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="true" />
<text id="inventory.propC5" title="供应商代码" row="6" col="1"
<list id="inventory.propC9" title="工厂" row="6" col="1"
span="1" width="120px" readOnly="false" required="false" reserve="false"
forceOverride="false" manualEditable="true">
<hql><![CDATA[ select carrierType.code,
carrierType.code
from PlantInfo as carrierType where 1=1 and carrierType.disabled=false
order by carrierType.code]]></hql>
</list>
<text id="inventory.propC5" title="供应商代码" row="6" col="2"
readOnly="false" required="false" reserve="false" forceOverride="false"
inVisible="false" trimSpace="true" />
<booleanList id="inventory.singleItem" title="是否批次号管理" row="7" col="1" span="1" readOnly="false"
@ -143,6 +151,7 @@
/~inventory.propC2: AND (inventory.propC2) LIKE ({inventory.propC2})~/
/~inventory.propC3: AND (inventory.propC3) LIKE ({inventory.propC3})~/
/~inventory.propC5: AND (inventory.propC5) LIKE ({inventory.propC5})~/
/~inventory.propC9: AND (inventory.propC9) LIKE ({inventory.propC9})~/
/~inventory.status: AND (inventory.status) LIKE ({inventory.status})~/
/~inventory.kqName: and inventory.zone.id = {inventory.kqName}~/
/~pickTicketDetail.location.id: and inventory.location.id = {pickTicketDetail.location.id}~/

View File

@ -20,7 +20,11 @@
row="2" col="1" readOnly="true" required="false" reserve="false"
forceOverride="false" inVisible="false" trimSpace="true"
isPrecision="true" />
<text id="inventory.itemKeyInventory.itemKey.lotInfo.propC1" title="itemKey.content"
<text id="inventory.itemKey.lotInfo.propC2" title="LOC"
row="2" col="2" span="1" readOnly="true" required="false"
reserve="false" forceOverride="false" inVisible="false" trimSpace="true"
isPrecision="true" />
<text id="inventory.itemKey.lotInfo.propC1" title="itemKey.content"
row="3" col="1" span="2" width="300" readOnly="true" required="false"
reserve="false" forceOverride="false" inVisible="false" trimSpace="true"
isPrecision="true" />
@ -69,6 +73,11 @@
<visibleExpression><![CDATA[(${fullLPMove}=='false')]]></visibleExpression>
</text>
<text id="ncr" title="NRC号" row="12" col="2"
readOnly="false" required="false" reserve="false" forceOverride="true"
inVisible="false" trimSpace="true" isPrecision="true">
</text>
<remote id="worker" title="moveInventoryPage.worker" row="10"
span="2" readOnly="false" required="false" reserve="false"
forceOverride="true" inVisible="false" manualEditable="true"
@ -87,10 +96,11 @@
<mapping id="destLocationId" className="long" />
<mapping id="quantity" className="double" />
<mapping id="worker" className="long" />
<mapping id="ncr" className="string" />
</mappings>
<actions>
<action managerName="inventoryManager" methodName="manualMove"
parameter="inventory.id,destLocationId,quantity,worker" />
parameter="inventory.id,destLocationId,quantity,worker,ncr" />
</actions>
<forwards>
<forward name="refreshParent" newEnabled="true"

View File

@ -23,7 +23,8 @@
<menuItem title="容器类型管理" pageId="maintainContainerTypePage"/>
<menuItem title="容器/热度值管理" pageId="maintainStockPage"/>
<menuItem title="库区作业时效管理" pageId="maintainShiXiaoPage"/>
<menuItem title="库区作业时效管理" pageId="maintainShiXiaoPage"/>
<menuItem title="波次执行时间" pageId="maintainAutomaticWaveDocPage"/>
<menuItem title="分拨墙管理" pageId="maintainSeedWallPage"/>
<menuItem title="货主管理" pageId="maintainOrganizationPage"/>
<menuItem title="账号管理" pageId="maintainWorkerPage"/>

View File

@ -36,10 +36,12 @@ maintainPlantInfoTypePage=\u5de5\u5382\u4fe1\u606f
#maintainPlantLocationPage
maintainPlantLocationPage=\u5e93\u5b58\u5730
maintainSapOutTypePage=SAP\u7c7b\u578b
#maintainUVPage=UV\u5165\u5e93
maintainhuojiadaorenPage='\u8d27\u67b6\u5230\u4eba\u4e0a\u67b6'
maintainShiXiaoPage='\u5de5\u4f5c\u7ad9\u65f6\u6548\u7ba1\u7406'
maintainPersonnelPage='\u4eba\u5458\u4fe1\u606f'
maintainAutomaticWaveDocPage=\u6ce2\u6b21\u6267\u884c\u65f6\u95f4
#maintainContainerPage='\u4f60\u597d\u5440'
maintainzhijianPage='\u8d28\u68c0\u7ba1\u7406'
maintainOutStorageListPage=\u5176\u4ed6\u51fa\u5e93\u660e\u7ec6

View File

@ -15,7 +15,7 @@
locationTypes.name,
locationTypes.name
From LocationTypes locationTypes
where 1=1 and upper(locationTypes.name) like '%料箱%' and locationTypes.id !=1]]></hql>
where 1=1 and locationTypes.name like '%料箱%' and locationTypes.id !=1]]></hql>
</list>
<list id="stockType" title="容器状态" row="4" col="2"
span="1" width="120px" readOnly="false" required="false" reserve="false"

View File

@ -98,9 +98,9 @@
horizonAlign="left" width="130"/>
<column id="inventory.itemKey.propC1" width="100"
title="maintainInventoryPage.itemKeyId" visible="true" horizonAlign="left" />
<column id="inventory.barCode" width="80"
<column id="inventory.barCode" width="130"
title="序列号" visible="true" horizonAlign="left" />
<column id="inventory.itemKey.propC2" width="100"
<column id="inventory.itemKey.propC2" width="80"
title="LOC" visible="true" horizonAlign="left" />
<column id="inventory.itemKey.propC3" width="100"
title="特殊标记" visible="true" horizonAlign="left" />

View File

@ -87,13 +87,13 @@
horizonAlign="left" width="130"/>
<column id="inventory.itemKey.propC1" width="100"
title="maintainInventoryPage.itemKeyId" visible="true" horizonAlign="left" />
<column id="inventory.barCode" width="80"
<column id="inventory.barCode" width="130"
title="序列号" visible="true" horizonAlign="left" />
<column id="rd.strBill1" width="100"
<column id="rd.strBill1" width="130"
title="NCR" visible="true" horizonAlign="left" />
<column id="inventory.itemKey.propC2" width="100"
<column id="inventory.itemKey.propC2" width="60"
title="LOC" visible="true" horizonAlign="left" />
<column id="inventory.itemKey.propC3" width="100"
<column id="inventory.itemKey.propC3" width="50"
title="特殊标记" visible="true" horizonAlign="left" />
<column id="inventory.itemKey.propC5" width="100"
title="特殊库存" visible="true" horizonAlign="left" />

View File

@ -212,6 +212,7 @@
itemKey.lotInfo.propC3,
itemKey.lotInfo.propC5,
itemKey.lotInfo.propC9,
itemKey.lotInfo.propD2,
pickTicket.equatedQuantity,
t.barCode,
pickTicketDetail.strBill12,
@ -358,6 +359,7 @@
<column id="itemKey.lotInfo.propC3" title="特殊标记" visible="true" horizonAlign="center" />
<column id="itemKey.lotInfo.propC5" title="供应商" visible="true" horizonAlign="center" />
<column id="itemKey.lotInfo.propC9" title="工厂" visible="true" horizonAlign="center" />
<column id="itemKey.lotInfo.propD2" title="到期日" visible="true" horizonAlign="center" />
<column id="pickTicket.equatedQuantity" title="加急标记" visible="true" horizonAlign="center" />
<column id="t.barCode" title="序列号" visible="true" horizonAlign="center" />
<column id="pickTicketDetail.strBill12" title="机台号" visible="true" horizonAlign="center" />

View File

@ -23,24 +23,24 @@
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property>
<property name="url">
<!-- <value>jdbc:sqlserver://localhost:1433;DatabaseName=zwtest</value> -->
<!-- <value>jdbc:sqlserver://192.168.2.88:1433;DatabaseName=zwlgtest</value> -->
<value>jdbc:sqlserver://47.103.100.52:1433;DatabaseName=lgtest</value>
<!-- <value>jdbc:sqlserver://10.1.119.75:1433;DatabaseName=zwlgtest</value> -->
<!-- 正式环境地址 -->
<!-- <value>jdbc:sqlserver://10.1.96.105:1433;DatabaseName=LD_WMSDB</value> -->
<value>jdbc:sqlserver://192.168.56.133:1433;DatabaseName=LD_WMSDB</value>
<!-- <value>jdbc:sqlserver://10.1.96.105:1433;DatabaseName=LD_WMSDB</value> -->
<!-- <value>jdbc:sqlserver://192.168.56.133:1433;DatabaseName=LD_WMSDB</value> -->
</property>
<property name="username">
<!-- <value>WMSDB</value> -->
<value>WMSDB</value>
<!-- <value>sa</value> -->
<!-- <value>wmsdb</value> -->
<value>liu</value>
<!-- <value>liu</value> -->
</property>
<property name="password">
<!-- <value>AmecDDbb32A</value> -->
<!-- <value>HPwd12#$</value> -->
<!-- <value>Amecadmin1!</value> -->
<!-- <value>WmsYc@5688</value> -->
<value>123456</value>
<!-- <value>Amec8888!</value> -->
<value>WmsYc@5688</value>
<!-- <value>123456</value> -->
</property>
<property name="maxActive">
<value>500</value>