igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml
@@ -386,8 +386,7 @@ </Label> <Button layoutConstraint="left"> <ClientEvent name="onClick">view.get("#dsMain").insert();
 view.get("#dialogMain").show(); </ClientEvent> view.get("#dialogMain").show(); </ClientEvent> <Property name="caption">新增</Property> <Property name="exClassName">btn-default</Property> <Property name="iconClass">fa fa-plus</Property> igds-inout/src/main/java/com/ld/igds/m/InoutManageUtil.java
@@ -2,13 +2,13 @@ import com.ld.igds.models.InoutPlan; import com.ld.igds.util.ContextUtil; import java.util.List; /** * 出入库--管理功能相关常量 * * @author: * */ public class InoutManageUtil { @@ -73,6 +73,14 @@ * 客户类型 - 个人 */ public static final String CUSTOMER_TYPE_2 = "2"; /** * 缓存-性质转变ID */ public static final String CACHE_STOCK_ID = "STOCK_ID"; /** * 缓存-性质转变ID */ public static final String CACHE_VARIETY_ID = "VARIETY_ID"; /** * 根据类型创建计划ID @@ -109,6 +117,7 @@ /** * 根据类型创建合同ID * * @param type * @return */ igds-inout/src/main/java/com/ld/igds/m/service/HMAtockChangeService.java
@@ -2,15 +2,20 @@ import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.constant.RedisConst; import com.ld.igds.inout.InoutConstant; import com.ld.igds.m.InoutManageUtil; import com.ld.igds.models.InoutStockChange; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.DateUtil; import com.ld.igds.util.RedisUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.hibernate.Session; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -18,6 +23,9 @@ @Service public class HMAtockChangeService extends HibernateDao { @Resource private RedisUtil redisUtil; public void pageData(Page<InoutStockChange> page, Map<String, Object> param) throws Exception { String hql = " from " + InoutStockChange.class.getName() @@ -54,19 +62,8 @@ data.setUpdateUser(ContextUtil.getLoginUserCName()); try { if (null == data.getCzbz()) { Map<String, Object> param = new HashMap<>(); param.put("dateTime", data.getChangeDate()); List<InoutStockChange> list = queryAll(param); int max = 0; if (list.size() != 0) { int num; for (InoutStockChange stockChange : list) { num = Integer.parseInt(stockChange.getId().substring(stockChange.getId().length() - 4)); max = Math.max(max, num); } } String date = DateFormatUtils.format(new Date(), "yyyyMMdd"); data.setId(date + String.format("%04d", max + 1)); String id = createId(data.getChangeDate(), ContextUtil.getCompanyId()); data.setId(id); data.setCzbz("i"); session.save(data); } else { @@ -97,18 +94,55 @@ } public List<InoutStockChange> queryAll(Map<String, Object> param) { public List<InoutStockChange> getMaxId(Map<String, Object> param) { String hql = "from " + InoutStockChange.class.getName() + " where 1 = 1 "; Map<String, Object> args = new HashMap<String, Object>(); Date date = (Date) param.get("dateTime"); if (null != date) { hql += " and updateTime >= :startTime and updateTime < :endTime"; args.put("startTime", DateUtil.getCurZero(date)); args.put("endTime", DateUtil.getNextZero(date)); if (null != param) { String str = (String) param.get("timeKey"); if (StringUtils.isNotEmpty(str)) { hql += " and id like :timeKey"; args.put("timeKey", str); } hql += " order by updateTime desc limit 20"; } hql += " order by id desc "; return this.query(hql, args); } public String createId(Date date, String companyId) { // 时间戳标签 String timeKey = DateFormatUtils.format(date, "yyyyMMdd"); // 从缓存中获取已有的组织编码 String cacheKey = RedisConst.buildKey(companyId, InoutManageUtil.CACHE_STOCK_ID); String cacheId = (String) redisUtil.get(cacheKey); if (null != cacheId && cacheId.indexOf(timeKey) >= 0) { String temp = cacheId.substring(cacheId.length() - 4); Integer i = Integer.valueOf(temp); i++; cacheId = timeKey + String.format("%04d", i); } else { Map<String, Object> args = new HashMap<>(); args.put("timeKey", timeKey + "%"); List<InoutStockChange> result = getMaxId(args); if (null == result || result.size() == 0) { cacheId = timeKey + "0001"; } else { String temp = result.get(0).getId(); // 获取最后四位 int i = Integer.valueOf(temp.substring(temp.length() - 4)); i++; cacheId = timeKey + String.format("%04d", i); } } // 更新缓存 redisUtil.set(cacheKey, cacheId); return cacheId; } } igds-inout/src/main/java/com/ld/igds/m/service/HVarietyChangeService.java
@@ -5,8 +5,11 @@ import java.util.List; import java.util.Map; import com.ld.igds.constant.RedisConst; import com.ld.igds.m.InoutManageUtil; import com.ld.igds.models.InoutStockChange; import com.ld.igds.util.DateUtil; import com.ld.igds.util.RedisUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.hibernate.Session; @@ -17,8 +20,15 @@ import com.ld.igds.models.InoutVarietyChange; import com.ld.igds.util.ContextUtil; import javax.annotation.Resource; import static com.bstek.dorado.view.widget.form.DateTimeSpinnerType.date; @Component public class HVarietyChangeService extends HibernateDao { @Resource private RedisUtil redisUtil; public void pageData(Page<InoutVarietyChange> page, Map<String, Object> param) throws Exception { @@ -69,19 +79,8 @@ try { if (null == data.getId()) { Map<String, Object> param = new HashMap<>(); param.put("dateTime", data.getChangeTime()); List<InoutVarietyChange> list = queryAll(param); int max = 0; if (list.size() != 0) { int num; for (InoutVarietyChange varietyChange : list) { num = Integer.parseInt(varietyChange.getId().substring(varietyChange.getId().length() - 3)); max = Math.max(max, num); } } String date = DateFormatUtils.format(new Date(), "yyyyMMdd"); data.setId(data.getHwdm() + date + String.format("%03d", max + 1)); String id = createId(data.getChangeTime(), ContextUtil.getCompanyId(), data.getHwdm()); data.setId(id); data.setCzbz("i"); session.save(data); } else { @@ -123,8 +122,62 @@ args.put("endTime", DateUtil.getNextZero(date)); } hql += " order by updateTime desc limit 20"; hql += " order by updateTime desc "; return this.query(hql, args); } public List<InoutVarietyChange> getMaxId(Map<String, Object> param) { String hql = "from " + InoutVarietyChange.class.getName() + " where 1 = 1 "; Map<String, Object> args = new HashMap<String, Object>(); if (null != param) { String str = (String) param.get("timeKey"); if (StringUtils.isNotEmpty(str)) { hql += " and id like :timeKey"; args.put("timeKey", str); } } hql += " order by id desc "; return this.query(hql, args); } public String createId(Date date, String companyId, String freightId) { // 时间戳标签 String timeKey = DateFormatUtils.format(date, "yyyyMMdd"); // 从缓存中获取已有的组织编码 String cacheKey = RedisConst.buildKey(companyId, InoutManageUtil.CACHE_VARIETY_ID); String cacheId = (String) redisUtil.get(cacheKey); if (null != cacheId && cacheId.indexOf(freightId + timeKey) >= 0) { String temp = cacheId.substring(cacheId.length() - 3); Integer i = Integer.valueOf(temp); i++; cacheId = freightId + timeKey + String.format("%03d", i); } else { Map<String, Object> args = new HashMap<>(); args.put("timeKey", "%" + freightId + timeKey + "%"); List<InoutVarietyChange> result = getMaxId(args); if (null == result || result.size() == 0) { cacheId = freightId + timeKey + "001"; } else { int max = 0; int num; for (InoutVarietyChange varietyChange : result) { num = Integer.parseInt(varietyChange.getId().substring(varietyChange.getId().length() - 3)); max = Math.max(max, num); } cacheId = freightId + timeKey + String.format("%03d", ++max); } } // 更新缓存 redisUtil.set(cacheKey, cacheId); return cacheId; } } igds-inout/src/main/java/com/ld/igds/m/view/StockChange.view.xml
@@ -73,11 +73,12 @@ <PropertyDef name="changeDate"> <Property name="dataType">Date</Property> <Property name="label">倒仓日期</Property> <Property name="required">true</Property> </PropertyDef> <PropertyDef name="number"> <Property name="dataType">Double</Property> <Property name="label">倒仓数量</Property> <Property name="displayFormat">#.00 KG</Property> <Property name="displayFormat">#,##0.00 KG</Property> </PropertyDef> <PropertyDef name="updateTime"> <Property name="dataType">Date</Property>