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,128 +2,137 @@ import com.ld.igds.models.InoutPlan; import com.ld.igds.util.ContextUtil; import java.util.List; /** * 出入库--管理功能相关常量 * * @author: * * @author: */ public class InoutManageUtil { /** * 计划类型-采购计划 */ public static final String PLAN_TYPE_1 = "1"; /** * 计划类型-销售计划 */ public static final String PLAN_TYPE_2 = "2"; /** * 计划类型-轮换计划 */ public static final String PLAN_TYPE_3 = "3"; /** * 计划类型-加工计划 */ public static final String PLAN_TYPE_4 = "4"; /** * 计划类型-采购计划 */ public static final String PLAN_TYPE_1 = "1"; /** * 计划类型-销售计划 */ public static final String PLAN_TYPE_2 = "2"; /** * 计划类型-轮换计划 */ public static final String PLAN_TYPE_3 = "3"; /** * 计划详细类型-轮入 */ public static final String PLAN_TYPE_TURN_IN = "2"; /** * 计划详细类型-轮出 */ public static final String PLAN_TYPE_TURN_OUT = "1"; /** * 计划类型-加工计划 */ public static final String PLAN_TYPE_4 = "4"; /** * 审核状态-待审核 */ public static final String AUDIT_NONE = "NONE"; /** * 审核状态-通过 */ public static final String AUDIT_PASS = "PASS"; /** * 审核状态-拒绝 */ public static final String AUDIT_UNPASS = "UNPASS"; /** * 计划详细类型-轮入 */ public static final String PLAN_TYPE_TURN_IN = "2"; /** * 计划详细类型-轮出 */ public static final String PLAN_TYPE_TURN_OUT = "1"; /** * 合同类型-代储合同 */ public static final String CONTRACT_TYPE_3 = "3"; /** * 合同类型-采购合同 */ public static final String CONTRACT_TYPE_2 = "2"; /** * 合同类型-销售合同 */ public static final String CONTRACT_TYPE_1 = "1"; /** * 审核状态-待审核 */ public static final String AUDIT_NONE = "NONE"; /** * 审核状态-通过 */ public static final String AUDIT_PASS = "PASS"; /** * 审核状态-拒绝 */ public static final String AUDIT_UNPASS = "UNPASS"; /** * 客户类型 - 企业 */ public static final String CUSTOMER_TYPE_1 = "1"; /** * 客户类型 - 个人 */ public static final String CUSTOMER_TYPE_2 = "2"; /** * 合同类型-代储合同 */ public static final String CONTRACT_TYPE_3 = "3"; /** * 合同类型-采购合同 */ public static final String CONTRACT_TYPE_2 = "2"; /** * 合同类型-销售合同 */ public static final String CONTRACT_TYPE_1 = "1"; /** * 根据类型创建计划ID * * @param type */ public static String createPlanId(String type, String year, List<InoutPlan> list) { String index = "001"; if(list != null && list.size() > 0){ String[] arr = list.get(0).getId().split("_"); int temp = Integer.valueOf(arr[2]) + 1; index = temp + ""; } if(index.length() == 1){ index = "00" + index; } if(index.length() == 2){ index = "0" + index; } if (PLAN_TYPE_1.equals(type)) { return "CGJH_" + year + "_" + index; } if (PLAN_TYPE_2.equals(type)) { return "XSJH_" + year + "_" + index; } if (PLAN_TYPE_3.equals(type)) { return "LHJH_" + year + "_" + index; } if (PLAN_TYPE_4.equals(type)) { return "JGJH_" + year + "_" + index; } return "QTJH" + year + "_" + index; } /** * 客户类型 - 企业 */ public static final String CUSTOMER_TYPE_1 = "1"; /** * 客户类型 - 个人 */ 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 * @param type * @return */ public static String createContractId(String type) { String id = ContextUtil.getTimeId(); if (CONTRACT_TYPE_1.equals(type)) { return "XSHT_" + id; } if (CONTRACT_TYPE_2.equals(type)) { return "CGHT_" + id; } if (CONTRACT_TYPE_3.equals(type)) { return "LHHT_" + id; } return id; } /** * 根据类型创建计划ID * * @param type */ public static String createPlanId(String type, String year, List<InoutPlan> list) { String index = "001"; if (list != null && list.size() > 0) { String[] arr = list.get(0).getId().split("_"); int temp = Integer.valueOf(arr[2]) + 1; index = temp + ""; } if (index.length() == 1) { index = "00" + index; } if (index.length() == 2) { index = "0" + index; } if (PLAN_TYPE_1.equals(type)) { return "CGJH_" + year + "_" + index; } if (PLAN_TYPE_2.equals(type)) { return "XSJH_" + year + "_" + index; } if (PLAN_TYPE_3.equals(type)) { return "LHJH_" + year + "_" + index; } if (PLAN_TYPE_4.equals(type)) { return "JGJH_" + year + "_" + index; } return "QTJH" + year + "_" + index; } /** * 根据类型创建合同ID * * @param type * @return */ public static String createContractId(String type) { String id = ContextUtil.getTimeId(); if (CONTRACT_TYPE_1.equals(type)) { return "XSHT_" + id; } if (CONTRACT_TYPE_2.equals(type)) { return "CGHT_" + id; } if (CONTRACT_TYPE_3.equals(type)) { return "LHHT_" + id; } return id; } } 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>