Browse Source

更新审批模板

lwx_dev
erdanergou 3 years ago
parent
commit
75e380c7a4
  1. 2
      src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java
  2. 18
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  3. 3
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  4. 35
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  5. 4
      src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java
  6. 255
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  7. 2
      src/main/resources/templates/pages/depository/table-in.html
  8. 40
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  9. 46
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  10. 1
      target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml
  11. 2
      target/classes/templates/pages/depository/table-in.html
  12. 40
      target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  13. 244
      target/classes/templates/pages/split/split_add.html

2
src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java

@ -108,7 +108,7 @@ public class GroupController {
boolean flagForQuantity = false;
for (Integer quantity : inventoryByMidAndDepository) {
// 如果库存符合要求
if (quantity > groupInfo.getQuantity()) {
if (quantity >= groupInfo.getQuantity()) {
flagForQuantity = true;
}
}

18
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -646,14 +646,16 @@ public class MaterialController {
if (placeAndMaterialByMidAndPid != null) {
SplitInventory splitInventory = splitUnitService.findSplitInventoryByIidAndSid(placeAndMaterialByMidAndPid.getId(), splitInfo.getId());
saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity());
SplitInfo parentSplitInfo = splitUnitService.findSplitInfoById(splitInfo.getParentId());
while (parentSplitInfo != null) {
splitInventory = splitUnitService.findSplitInventoryByIidAndSid(placeAndMaterialByMidAndPid.getId(), parentSplitInfo.getId());
splitInfo = splitUnitService.findSplitInfoByParentId(parentSplitInfo.getId());
saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity()) * splitInfo.getQuantity();
parentSplitInfo = splitUnitService.findSplitInfoById(parentSplitInfo.getParentId());
if(splitInventory != null) {
saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity());
SplitInfo parentSplitInfo = splitUnitService.findSplitInfoById(splitInfo.getParentId());
while (parentSplitInfo != null) {
splitInventory = splitUnitService.findSplitInventoryByIidAndSid(placeAndMaterialByMidAndPid.getId(), parentSplitInfo.getId());
splitInfo = splitUnitService.findSplitInfoByParentId(parentSplitInfo.getId());
saveQuantity += (splitInventory.getSaveQuantity() - splitInventory.getOutQuantity()) * splitInfo.getQuantity();
parentSplitInfo = splitUnitService.findSplitInfoById(parentSplitInfo.getParentId());
}
}
}
}

3
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -1328,12 +1328,13 @@ public class PageController {
}
@GetMapping("/form_step_look")
public ModelAndView form_step_look(Integer id, Integer flagForGroup, HttpServletRequest request) {
public ModelAndView form_step_look(Integer id, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/application/form-step-look");
if (id != null) {
ApplicationInRecordP applicationInRecordPById = depositoryRecordService.findApplicationInRecordPById(id);
Integer flagForGroup = applicationInRecordPById.getFlagForGroup();
if (Integer.compare(flagForGroup, 2) != 0) {
// 如果不是组合
UserByPort userByPort = LinkInterfaceUtil.FindUserById(applicationInRecordPById.getApplicantId(), userToken);

35
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -250,7 +250,6 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取当前时间
long now = System.currentTimeMillis();
// 获取今天凌晨的时间
Long nowTimeForCalc = DateUtil.getNowTimeForCalc();
// 获取昨天时间
@ -271,18 +270,20 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 查询昨天的入库
List<ApplicationInRecordP> applicationInRecordPForYesterday = depositoryRecordMapper.findApplicationInRecordPForAPeriodOfTime(mapForYesterday);
// 今天的入库数量
Integer sumForToday = 0;
int sumForToday = 0;
// 今天的入库额度
Double priceForToday = 0.0;
double priceForToday = 0.0;
// 昨天的入库数量
Integer sumForYesterDay = 0;
int sumForYesterDay = 0;
// 昨天的入库额度
Double priceForYesterDay = 0.0;
for (int i = 0; i < applicationInRecordPForToday.size(); i++) {
ApplicationInRecordP applicationInRecordP = applicationInRecordPForToday.get(i);
double priceForYesterDay = 0.0;
for (ApplicationInRecordP applicationInRecordP : applicationInRecordPForToday) {
// 获取当前入库类型(1物料2组合)
Integer flagForGroup = applicationInRecordP.getFlagForGroup();
sumForToday += applicationInRecordP.getQuantity();
priceForToday += applicationInRecordP.getPrice() * applicationInRecordP.getQuantity();
}
for (int i = 0; i < applicationInRecordPForYesterday.size(); i++) {
@ -295,10 +296,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
Double ratioForCount = 0.0;
Double ratioForPrice = 0.0;
if (Double.compare(sumForYesterDay, 0.0) != 0) {
ratioForCount = ((sumForToday - sumForYesterDay) / Double.parseDouble(sumForYesterDay.toString()));
ratioForCount = ((sumForToday - sumForYesterDay) / Double.parseDouble(Integer.toString(sumForYesterDay)));
}
if (Double.compare(priceForYesterDay, 0.0) != 0) {
ratioForPrice = (priceForToday - priceForYesterDay) / Double.parseDouble(priceForYesterDay.toString());
ratioForPrice = (priceForToday - priceForYesterDay) / Double.parseDouble(Double.toString(priceForYesterDay));
}
BigDecimal bgForSum = new BigDecimal(ratioForCount);
BigDecimal bgForPrice = new BigDecimal(ratioForPrice);
@ -655,12 +656,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
Inventory inventoryById = materialMapper.findInventoryById(mid);
map.put("depositoryId", inventoryById.getDepositoryId());
map.put("trueOut", 0);
// 获取出库数量
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity"));
// 设置当前暂时出库数量
inventoryById.setNumberOfTemporary(inventoryById.getNumberOfTemporary() + quantity);
// 修改库存记录
materialMapper.updateInventory(inventoryById);
String unit = (String) map.get("unit");
if ("-1".equals(unit)) {
// 获取出库数量
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity"));
// 设置当前暂时出库数量
inventoryById.setNumberOfTemporary(inventoryById.getNumberOfTemporary() + quantity);
// 修改库存记录
materialMapper.updateInventory(inventoryById);
}
return depositoryRecordMapper.insertApplicationOutRecordMin(map);
}

4
src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java

@ -683,6 +683,7 @@ public class GroupServiceImpl implements GroupService {
* @param map 具体数据
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public Integer insertApplicationInRecord(Map<String, Object> map, UserByPort userToken) {
// 获取当前提交数
@ -715,7 +716,6 @@ public class GroupServiceImpl implements GroupService {
insertForApplicationInRecord.put("depositoryId",depositoryId);
insertForApplicationInRecord.put("placeId",placeId);
insertForApplicationInRecord.put("price", String.valueOf(0));
insertForApplicationInRecord.put("applyRemark", map.get("applyRemark" + temp));
// 循环当前组合信息
for (GroupInfo groupInfo :
@ -729,11 +729,13 @@ public class GroupServiceImpl implements GroupService {
// 如果是基础单位
Material material = materialMapper.findMaterialById(groupInfo.getMid());
insertForApplicationInRecord.put("unit",material.getUnit());
insertForApplicationInRecord.put("price", String.valueOf(0));
result += depositoryRecordService.applicationInPlace(insertForApplicationInRecord);
depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(insertForApplicationInRecord.get("id")));
}else{
insertForApplicationInRecord.put("unit",unit);
insertForApplicationInRecord.put("type","in");
insertForApplicationInRecord.put("price", String.valueOf(0));
result += splitUnitService.addSplitInventory(insertForApplicationInRecord);
depositoryRecordMapper.deleteApplicationInRecordById(ObjectFormatUtil.toInteger(insertForApplicationInRecord.get("applicationInId")));
insertForApplicationInRecord.remove("applicationInId");

255
src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java

@ -772,20 +772,27 @@ public class QyWxOperationService {
content.append("%n---%n");
for (ApplicationOutRecordMin recordMin : applicationOutRecordMinByParent) {
// 获取子订单信息
// 获取申请物料信息
Inventory materialById = materialMapper.findInventoryById(recordMin.getMid());
// 获取仓库信息
Depository depositoryRecordById = depositoryMapper.findDepositoryById(recordMin.getDepositoryId());
// 获取处理人信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(recordMin.getCheckId(), null);
// 获取对应出库单位
String unit = recordMin.getUnit();
if("-1".equals(unit)){
unit = materialById.getUnit();
}
content.append(">- 物料名称:").append(materialById.getMname()).append("%n");
content.append(">- 申请数量:").append(recordMin.getQuantity()).append("%n");
content.append(">- 出库单位:").append(unit).append("%n");
content.append(">- 所处仓库:").append(depositoryRecordById.getDname()).append("%n");
content.append(">- 出库人员:").append(userByPort.getName()).append("%n");
content.append("%n---%n");
}
content.append(">## '''%n" +
">如需要查看详细信息,请点击:[查看信息](https://jy.hxgk.group/ApplicationOutView?id=" + recordP.getId() + ")");
content.append(">## '''%n" + ">如需要查看详细信息,请点击:[查看信息](https://jy.hxgk.group/ApplicationOutView?id=").append(recordP.getId()).append(")");
markdown.put("content", content.toString());
markDown.setMarkdown(markdown);
String jsonString = JSONObject.toJSONString(markDown);
@ -844,7 +851,7 @@ public class QyWxOperationService {
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userToken);
// 设置content
content.append(">### **" + originator.getName() + "的物料调账记录** %n<font color='warning'>时间:" + DateUtil.TimeStampToDateTime(mainRecord.getCreateTime()) + "</font> %n");
content.append(">### **").append(originator.getName()).append("的物料调账记录** %n<font color='warning'>时间:").append(DateUtil.TimeStampToDateTime(mainRecord.getCreateTime())).append("</font> %n");
content.append("%n---%n");
@ -885,16 +892,21 @@ public class QyWxOperationService {
fromLocation = fromDepository.getDname() + " - "+oldPlace.getCode();
}
// 获取对应盘点单位
String unit = minRecord.getUnit();
if("-1".equals(unit)){
unit = material.getUnit();
}
content.append(">- 物料名称:").append(material.getMname()).append("%n");
content.append(">- 盘点位置:").append(fromLocation).append("%n");
content.append(">- 原库存数量:").append(minRecord.getOldInventory()).append("%n");
content.append(">- 盘点数量:").append(minRecord.getNewInventory()).append("%n");
content.append(">- 盘点单位:").append(unit).append("%n");
content.append(">- 盈亏数量:").append(minRecord.getInventory()).append("%n");
content.append(">- 盘点结果:").append(takingResult).append("%n");
content.append("%n---%n");
}
content.append(">## '''%n" +
">如需要查看详细信息,请点击:[查看信息](https://jy.hxgk.group/StockTakingView?id=" + mainRecord.getId() + ")");
content.append(">## '''%n" + ">如需要查看详细信息,请点击:[查看信息](https://jy.hxgk.group/StockTakingView?id=").append(mainRecord.getId()).append(")");
markdown.put("content", content.toString());
markDown.setMarkdown(markdown);
@ -1480,95 +1492,115 @@ public class QyWxOperationService {
approval_template_apply_data_contents_info.setId("Table-1668046309360");
// 定义明细列表
List<Object> contents_detail = new ArrayList<>();
for (int i = 0; i < minRecordList.size(); i++) {
for (ApplicationOutRecordMin recordMin : minRecordList) {
// 获取明细信息
ApplicationOutRecordMin recordMin = minRecordList.get(i);
// 获取当前出库物料
Inventory materialById = materialMapper.findInventoryById(recordMin.getMid());
// 获取当前物料所在仓库
Depository depositoryById = depositoryMapper.findDepositoryById(recordMin.getDepositoryId());
Map<String,Object> detail_list = new HashMap<>();
Map<String, Object> detail_list = new HashMap<>();
// 定义明细种的控件列表
List<Object> detail_list_control = new ArrayList<>();
// 物料名称
Map<String,Object> detail_list_control_info_materialName = new HashMap<>();
detail_list_control_info_materialName.put("control","Text");
detail_list_control_info_materialName.put("id","Text-1668046310921");
Map<String,String> detail_list_control_info_title_materialName = new HashMap<>();
detail_list_control_info_title_materialName.put("text","物料名称");
detail_list_control_info_title_materialName.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_materialName = new HashMap<>();
detail_list_control_info_materialName.put("control", "Text");
detail_list_control_info_materialName.put("id", "Text-1668046310921");
Map<String, String> detail_list_control_info_title_materialName = new HashMap<>();
detail_list_control_info_title_materialName.put("text", "物料名称");
detail_list_control_info_title_materialName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_materialName = new ArrayList<>();
detail_list_control_info_title_list_materialName.add(detail_list_control_info_title_materialName);
detail_list_control_info_materialName.put("title",detail_list_control_info_title_list_materialName);
detail_list_control_info_materialName.put("title", detail_list_control_info_title_list_materialName);
Map<String,String> detail_list_control_info_value_Mname = new HashMap<>();
detail_list_control_info_value_Mname.put("text",materialById.getMname());
detail_list_control_info_materialName.put("value",detail_list_control_info_value_Mname);
Map<String, String> detail_list_control_info_value_Mname = new HashMap<>();
detail_list_control_info_value_Mname.put("text", materialById.getMname());
detail_list_control_info_materialName.put("value", detail_list_control_info_value_Mname);
// 物料编码
Map<String,Object> detail_list_control_info_materialCode = new HashMap<>();
detail_list_control_info_materialCode.put("control","Text");
detail_list_control_info_materialCode.put("id","Text-1668046336721");
Map<String,String> detail_list_control_info_title_materialCode = new HashMap<>();
detail_list_control_info_title_materialCode.put("text","物料编码");
detail_list_control_info_title_materialCode.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_materialCode = new HashMap<>();
detail_list_control_info_materialCode.put("control", "Text");
detail_list_control_info_materialCode.put("id", "Text-1668046336721");
Map<String, String> detail_list_control_info_title_materialCode = new HashMap<>();
detail_list_control_info_title_materialCode.put("text", "物料编码");
detail_list_control_info_title_materialCode.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_Code = new ArrayList<>();
detail_list_control_info_title_list_Code.add(detail_list_control_info_title_materialCode);
detail_list_control_info_materialCode.put("title",detail_list_control_info_title_list_Code);
detail_list_control_info_materialCode.put("title", detail_list_control_info_title_list_Code);
Map<String,String> detail_list_control_info_value_Code = new HashMap<>();
detail_list_control_info_value_Code.put("text",materialById.getCode());
detail_list_control_info_materialCode.put("value",detail_list_control_info_value_Code);
Map<String, String> detail_list_control_info_value_Code = new HashMap<>();
detail_list_control_info_value_Code.put("text", materialById.getCode());
detail_list_control_info_materialCode.put("value", detail_list_control_info_value_Code);
// 请求数量
Map<String,Object> detail_list_control_info_outNumber = new HashMap<>();
detail_list_control_info_outNumber.put("control","Number");
detail_list_control_info_outNumber.put("id","Number-1668051559772");
Map<String,String> detail_list_control_info_title_outNumber = new HashMap<>();
detail_list_control_info_title_outNumber.put("text","数量");
detail_list_control_info_title_outNumber.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_outNumber = new HashMap<>();
detail_list_control_info_outNumber.put("control", "Number");
detail_list_control_info_outNumber.put("id", "Number-1668051559772");
Map<String, String> detail_list_control_info_title_outNumber = new HashMap<>();
detail_list_control_info_title_outNumber.put("text", "数量");
detail_list_control_info_title_outNumber.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_outNumber = new ArrayList<>();
detail_list_control_info_title_list_outNumber.add(detail_list_control_info_title_outNumber);
detail_list_control_info_outNumber.put("title",detail_list_control_info_title_list_outNumber);
detail_list_control_info_outNumber.put("title", detail_list_control_info_title_list_outNumber);
Map<String, String> detail_list_control_info_value_outNumber = new HashMap<>();
detail_list_control_info_value_outNumber.put("new_number", recordMin.getQuantity().toString() + materialById.getQuantity());
detail_list_control_info_outNumber.put("value", detail_list_control_info_value_outNumber);
// 请求单位
Map<String, Object> detail_list_control_info_unit = new HashMap<>();
detail_list_control_info_unit.put("control", "Text");
detail_list_control_info_unit.put("id", "Text-1672816068840");
Map<String, String> detail_list_control_info_title_unit = new HashMap<>();
detail_list_control_info_title_unit.put("text", "单位");
detail_list_control_info_title_unit.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_unit = new ArrayList<>();
detail_list_control_info_title_list_unit.add(detail_list_control_info_title_unit);
detail_list_control_info_unit.put("title", detail_list_control_info_title_list_unit);
Map<String, String> detail_list_control_info_value_unit = new HashMap<>();
// 定义出库单位
String unit = recordMin.getUnit();
if ("-1".equals(unit)) {
unit = materialById.getUnit();
}
detail_list_control_info_value_unit.put("text", unit);
detail_list_control_info_unit.put("value", detail_list_control_info_value_unit);
Map<String,String> detail_list_control_info_value_outNumber = new HashMap<>();
detail_list_control_info_value_outNumber.put("new_number",recordMin.getQuantity().toString() + materialById.getQuantity());
detail_list_control_info_outNumber.put("value",detail_list_control_info_value_outNumber);
// 物料名称
Map<String,Object> detail_list_control_info_depositoryName = new HashMap<>();
detail_list_control_info_depositoryName.put("control","Text");
detail_list_control_info_depositoryName.put("id","Text-1668137728919");
Map<String,String> detail_list_control_info_title_depositoryName = new HashMap<>();
detail_list_control_info_title_depositoryName.put("text","所在仓库");
detail_list_control_info_title_depositoryName.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_depositoryName = new HashMap<>();
detail_list_control_info_depositoryName.put("control", "Text");
detail_list_control_info_depositoryName.put("id", "Text-1668137728919");
Map<String, String> detail_list_control_info_title_depositoryName = new HashMap<>();
detail_list_control_info_title_depositoryName.put("text", "所在仓库");
detail_list_control_info_title_depositoryName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_depositoryName = new ArrayList<>();
detail_list_control_info_title_list_depositoryName.add(detail_list_control_info_title_depositoryName);
detail_list_control_info_depositoryName.put("title",detail_list_control_info_title_list_depositoryName);
Map<String,String> detail_list_control_info_value_dname = new HashMap<>();
detail_list_control_info_value_dname.put("text",depositoryById.getDname());
detail_list_control_info_depositoryName.put("value",detail_list_control_info_value_dname);
detail_list_control_info_depositoryName.put("title", detail_list_control_info_title_list_depositoryName);
Map<String, String> detail_list_control_info_value_dname = new HashMap<>();
detail_list_control_info_value_dname.put("text", depositoryById.getDname());
detail_list_control_info_depositoryName.put("value", detail_list_control_info_value_dname);
detail_list_control.add(detail_list_control_info_materialName);
detail_list_control.add(detail_list_control_info_materialCode);
detail_list_control.add(detail_list_control_info_outNumber);
detail_list_control.add(detail_list_control_info_depositoryName);
detail_list_control.add(detail_list_control_info_unit);
detail_list.put("list",detail_list_control);
detail_list.put("list", detail_list_control);
contents_detail.add(detail_list);
@ -1761,95 +1793,115 @@ public class QyWxOperationService {
approval_template_apply_data_contents_info.setId("Table-1668220735636");
// 定义明细列表
List<Object> contents_detail = new ArrayList<>();
for (int i = 0; i < minRecordList.size(); i++) {
for (ApplicationOutRecordMin recordMin : minRecordList) {
// 获取明细信息
ApplicationOutRecordMin recordMin = minRecordList.get(i);
// 获取当前出库物料
Inventory materialById = materialMapper.findInventoryById(recordMin.getMid());
// 获取当前物料所在仓库
Depository depositoryById = depositoryMapper.findDepositoryById(recordMin.getDepositoryId());
Map<String,Object> detail_list = new HashMap<>();
Map<String, Object> detail_list = new HashMap<>();
// 定义明细种的控件列表
List<Object> detail_list_control = new ArrayList<>();
// 物料名称
Map<String,Object> detail_list_control_info_materialName = new HashMap<>();
detail_list_control_info_materialName.put("control","Text");
detail_list_control_info_materialName.put("id","Text-1668220747685");
Map<String,String> detail_list_control_info_title_materialName = new HashMap<>();
detail_list_control_info_title_materialName.put("text","物料名称");
detail_list_control_info_title_materialName.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_materialName = new HashMap<>();
detail_list_control_info_materialName.put("control", "Text");
detail_list_control_info_materialName.put("id", "Text-1668220747685");
Map<String, String> detail_list_control_info_title_materialName = new HashMap<>();
detail_list_control_info_title_materialName.put("text", "物料名称");
detail_list_control_info_title_materialName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_materialName = new ArrayList<>();
detail_list_control_info_title_list_materialName.add(detail_list_control_info_title_materialName);
detail_list_control_info_materialName.put("title",detail_list_control_info_title_list_materialName);
detail_list_control_info_materialName.put("title", detail_list_control_info_title_list_materialName);
Map<String,String> detail_list_control_info_value_Mname = new HashMap<>();
detail_list_control_info_value_Mname.put("text",materialById.getMname());
detail_list_control_info_materialName.put("value",detail_list_control_info_value_Mname);
Map<String, String> detail_list_control_info_value_Mname = new HashMap<>();
detail_list_control_info_value_Mname.put("text", materialById.getMname());
detail_list_control_info_materialName.put("value", detail_list_control_info_value_Mname);
// 物料编码
Map<String,Object> detail_list_control_info_materialCode = new HashMap<>();
detail_list_control_info_materialCode.put("control","Text");
detail_list_control_info_materialCode.put("id","Text-1668220752173");
Map<String,String> detail_list_control_info_title_materialCode = new HashMap<>();
detail_list_control_info_title_materialCode.put("text","物料编码");
detail_list_control_info_title_materialCode.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_materialCode = new HashMap<>();
detail_list_control_info_materialCode.put("control", "Text");
detail_list_control_info_materialCode.put("id", "Text-1668220752173");
Map<String, String> detail_list_control_info_title_materialCode = new HashMap<>();
detail_list_control_info_title_materialCode.put("text", "物料编码");
detail_list_control_info_title_materialCode.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_Code = new ArrayList<>();
detail_list_control_info_title_list_Code.add(detail_list_control_info_title_materialCode);
detail_list_control_info_materialCode.put("title",detail_list_control_info_title_list_Code);
detail_list_control_info_materialCode.put("title", detail_list_control_info_title_list_Code);
Map<String,String> detail_list_control_info_value_Code = new HashMap<>();
detail_list_control_info_value_Code.put("text",materialById.getCode());
detail_list_control_info_materialCode.put("value",detail_list_control_info_value_Code);
Map<String, String> detail_list_control_info_value_Code = new HashMap<>();
detail_list_control_info_value_Code.put("text", materialById.getCode());
detail_list_control_info_materialCode.put("value", detail_list_control_info_value_Code);
// 请求数量
Map<String,Object> detail_list_control_info_outNumber = new HashMap<>();
detail_list_control_info_outNumber.put("control","Number");
detail_list_control_info_outNumber.put("id","Number-1668220772222");
Map<String,String> detail_list_control_info_title_outNumber = new HashMap<>();
detail_list_control_info_title_outNumber.put("text","数量");
detail_list_control_info_title_outNumber.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_outNumber = new HashMap<>();
detail_list_control_info_outNumber.put("control", "Number");
detail_list_control_info_outNumber.put("id", "Number-1668220772222");
Map<String, String> detail_list_control_info_title_outNumber = new HashMap<>();
detail_list_control_info_title_outNumber.put("text", "数量");
detail_list_control_info_title_outNumber.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_outNumber = new ArrayList<>();
detail_list_control_info_title_list_outNumber.add(detail_list_control_info_title_outNumber);
detail_list_control_info_outNumber.put("title",detail_list_control_info_title_list_outNumber);
Map<String,String> detail_list_control_info_value_outNumber = new HashMap<>();
detail_list_control_info_value_outNumber.put("new_number",recordMin.getQuantity().toString());
detail_list_control_info_outNumber.put("value",detail_list_control_info_value_outNumber);
detail_list_control_info_outNumber.put("title", detail_list_control_info_title_list_outNumber);
Map<String, String> detail_list_control_info_value_outNumber = new HashMap<>();
detail_list_control_info_value_outNumber.put("new_number", recordMin.getQuantity().toString());
detail_list_control_info_outNumber.put("value", detail_list_control_info_value_outNumber);
// 请求单位
Map<String, Object> detail_list_control_info_unit = new HashMap<>();
detail_list_control_info_unit.put("control", "Text");
detail_list_control_info_unit.put("id", "Text-1672816711264");
Map<String, String> detail_list_control_info_title_unit = new HashMap<>();
detail_list_control_info_title_unit.put("text", "单位");
detail_list_control_info_title_unit.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_unit = new ArrayList<>();
detail_list_control_info_title_list_unit.add(detail_list_control_info_title_unit);
detail_list_control_info_unit.put("title", detail_list_control_info_title_list_unit);
Map<String, String> detail_list_control_info_value_unit = new HashMap<>();
// 定义出库单位
String unit = recordMin.getUnit();
if ("-1".equals(unit)) {
unit = materialById.getUnit();
}
detail_list_control_info_value_unit.put("text", unit);
detail_list_control_info_unit.put("value", detail_list_control_info_value_unit);
// 物料名称
Map<String,Object> detail_list_control_info_depositoryName = new HashMap<>();
detail_list_control_info_depositoryName.put("control","Text");
detail_list_control_info_depositoryName.put("id","Text-1668220760317");
Map<String,String> detail_list_control_info_title_depositoryName = new HashMap<>();
detail_list_control_info_title_depositoryName.put("text","所在仓库");
detail_list_control_info_title_depositoryName.put("lang","zh_CN");
Map<String, Object> detail_list_control_info_depositoryName = new HashMap<>();
detail_list_control_info_depositoryName.put("control", "Text");
detail_list_control_info_depositoryName.put("id", "Text-1668220760317");
Map<String, String> detail_list_control_info_title_depositoryName = new HashMap<>();
detail_list_control_info_title_depositoryName.put("text", "所在仓库");
detail_list_control_info_title_depositoryName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_depositoryName = new ArrayList<>();
detail_list_control_info_title_list_depositoryName.add(detail_list_control_info_title_depositoryName);
detail_list_control_info_depositoryName.put("title",detail_list_control_info_title_list_depositoryName);
Map<String,String> detail_list_control_info_value_dname = new HashMap<>();
detail_list_control_info_value_dname.put("text",depositoryById.getDname());
detail_list_control_info_depositoryName.put("value",detail_list_control_info_value_dname);
detail_list_control_info_depositoryName.put("title", detail_list_control_info_title_list_depositoryName);
Map<String, String> detail_list_control_info_value_dname = new HashMap<>();
detail_list_control_info_value_dname.put("text", depositoryById.getDname());
detail_list_control_info_depositoryName.put("value", detail_list_control_info_value_dname);
detail_list_control.add(detail_list_control_info_materialName);
detail_list_control.add(detail_list_control_info_materialCode);
detail_list_control.add(detail_list_control_info_outNumber);
detail_list_control.add(detail_list_control_info_depositoryName);
detail_list_control.add(detail_list_control_info_unit);
detail_list.put("list",detail_list_control);
detail_list.put("list", detail_list_control);
contents_detail.add(detail_list);
@ -2213,8 +2265,13 @@ public class QyWxOperationService {
detail_list_control_info_title_list_materialUnit.add(detail_list_control_info_title_materialUnit);
detail_list_control_info_materialUnit.put("title",detail_list_control_info_title_list_materialUnit);
// 获取盘点时的计量单位
String unit = minRecord.getUnit();
if("-1".equals(unit)){
unit = materialById.getUnit();
}
Map<String,String> detail_list_control_info_value_materialUnit = new HashMap<>();
detail_list_control_info_value_materialUnit.put("text",materialById.getUnit());
detail_list_control_info_value_materialUnit.put("text",unit);
detail_list_control_info_materialUnit.put("value",detail_list_control_info_value_materialUnit);

2
src/main/resources/templates/pages/depository/table-in.html

@ -265,7 +265,7 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/form_step_look?id=' + data.id+'&flagForGroup='+data.flagForGroup,
content: '/form_step_look?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);

40
src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -54,26 +54,26 @@
var barCode = null;
layui.$(function () {
parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
});

46
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -1,11 +1,13 @@
package com.dreamchaser.depository_manage;
import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.entity.Inventory;
import com.dreamchaser.depository_manage.entity.SplitInfo;
import com.dreamchaser.depository_manage.entity.SplitInventory;
import com.dreamchaser.depository_manage.mapper.MaterialMapper;
import com.dreamchaser.depository_manage.mapper.SplitUnitMapper;
import com.dreamchaser.depository_manage.service.SplitUnitService;
import com.dreamchaser.depository_manage.service.impl.QyWxOperationService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@ -24,52 +26,14 @@ import java.util.Map;
@RunWith(SpringRunner.class)
public class TestForOther {
@Autowired
SplitUnitService splitUnitService;
@Autowired
SplitUnitMapper splitUnitMapper;
@Autowired
MaterialMapper materialMapper;
QyWxOperationService qyWxOperationService;
@Test
public void Test() throws IOException {
SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(1);
int splitInfoScaleQuantity = findSplitInfoScaleQuantity(splitInfoById, -1);
System.out.println(splitInfoScaleQuantity);
JSONObject approvalTemplateInfo = qyWxOperationService.getApprovalTemplateInfo("", "3WKiKVEcnH2dsARvP18hwkApF1Ku5dbNd7txbZCS");
System.out.println(approvalTemplateInfo);
}
/**
* 用于计算当前拆单单位与目标拆单单位之间的进率
*
* @param splitInfo 待查询拆单记录
* @param parentSplitInfoId 目标拆单单位
* @return
*/
public int findSplitInfoScaleQuantity(SplitInfo splitInfo, Integer parentSplitInfoId) {
int quantity = 1; // 定义进制
if (parentSplitInfoId != null && Integer.compare(-1, parentSplitInfoId) != 0) {
// 如果待查询的父级不是顶级
if (Integer.compare(splitInfo.getParentId(), parentSplitInfoId) == 0) {
// 如果当前拆单记录是目标拆单单位
quantity *= splitInfo.getQuantity();
return quantity;
} else {
SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(splitInfo.getParentId());
return quantity * findSplitInfoScaleQuantity(splitInfoById, parentSplitInfoId);
}
} else {
quantity *= splitInfo.getQuantity();
if (splitInfo.getParentId() != null) {
SplitInfo splitInfoById = splitUnitMapper.findSplitInfoById(splitInfo.getParentId());
return quantity * findSplitInfoScaleQuantity(splitInfoById, parentSplitInfoId);
} else {
return quantity;
}
}
}
}

1
target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml

@ -25,6 +25,7 @@
<result column="productionPlace" property="productionPlace" jdbcType="VARCHAR"/>
<result column="brand" property="brand" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="VARCHAR"/>
<result column="tname" property="typeName" jdbcType="VARCHAR"/>
</resultMap>

2
target/classes/templates/pages/depository/table-in.html

@ -265,7 +265,7 @@
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/form_step_look?id=' + data.id+'&flagForGroup='+data.flagForGroup,
content: '/form_step_look?id=' + data.id,
});
$(window).on("resize", function () {
layer.full(index);

40
target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -54,26 +54,26 @@
var barCode = null;
layui.$(function () {
parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
parent.parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode", "qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
outboundLogic(req);
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
}
});
});

244
target/classes/templates/pages/split/split_add.html

@ -34,10 +34,14 @@
padding-right: 0px;
}
.layui-form-select{
.layui-form-select {
width: 100%;
}
.layui-unselect {
border-right: none
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
@ -86,10 +90,10 @@
<label class="layui-form-label">条形编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id="barCode" name="barCode" type="text" readonly
value=""
class="layui-input"
style="border-style: none">
<select id="barCode" name="barCode" type="text" readonly
class="layui-input"
style="border-style: none;">
</select>
<img src="/static/images/search.ico" height="16" width="16"
id="barCodeImg"
style="margin-top: 10px" onclick="scanBarCode(this)">
@ -149,13 +153,13 @@
</button>
</div>
</div>
</form>
</form>
</div>
</div>
</div>
</div>
</fieldset>
</div>
</fieldset>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
@ -188,28 +192,28 @@
form.on('submit(formStep)', function (data) {
data = data.field;
$.ajax({
url:"/split/splitAdd",
data:JSON.stringify(data),
dataType:"json",
type:"post",
url: "/split/splitAdd",
data: JSON.stringify(data),
dataType: "json",
type: "post",
contentType: "application/json;charset=utf-8",
success:function (res) {
success: function (res) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.detail,{
icon:6,
time:1000
},function () {
window.location="/split_add"
layer.msg(data.statusInfo.detail, {
icon: 6,
time: 1000
}, function () {
window.location = "/split_add"
});//失败的表情
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function(){
function () {
//do something
window.location="/split_add"
window.location = "/split_add"
});
}
}
@ -220,7 +224,7 @@
// 通过名称查询物料
selectMaterialByName = function (obj) {
let materialName = $("#mname");
var data = materialName.val();
var data = materialName.val().split(",")[0];
var req = {};
req.mname = data;
let materialId = $("#mid");
@ -259,10 +263,10 @@
codeValue.val(material.code);
version.val(material.version);
typeName.val(material.typeName);
unit.append(new Option(material.unit,material.unit));
unit.empty();
unit.append(new Option(material.unit, material.unit));
var splitInfoList = material["splitInfoList"];
$.each(splitInfoList,function (index,item) {
$.each(splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
@ -271,21 +275,13 @@
if (materialAndBarCodeList !== null && materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$("#barCode").remove();
var barCodeSelect = `
<select id="barCode" name= "barCode"></select>`;
$("#barCodeImg").before(barCodeSelect);
form.render();
$("#barCode").empty();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode").append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}else{
let children = $("#barCode").parent().children();
if(children.length > 2){
$("#barCode").empty();
$(children[1]).empty();
}
} else {
$("#barCode").empty();
}
}
}
@ -329,10 +325,12 @@
}
$("#code").val(code);
$("#version").val(material.version);
$("#unit").append(new Option(material.unit,material.unit));
let unit = $("#unit");
unit.empty();
unit.append(new Option(material.unit, material.unit));
var splitInfoList = material["splitInfoList"];
$.each(splitInfoList,function (index,item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
$.each(splitInfoList, function (index, item) {
unit.append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
$("#typeName").val(material.typeName);
@ -340,21 +338,14 @@
if (materialAndBarCodeList !== null && materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$("#barCode").remove();
var barCodeSelect = `
<select id="barCode" name= "barCode"></select>`;
$("#barCodeImg").before(barCodeSelect);
form.render();
$("#barCode").empty()
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode").append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}else{
let children = $("#barCode").parent().children();
if(children.length > 2){
$("#barCode").empty();
$(children[1]).empty();
}
} else {
$("#barCode").empty();
}
}
});
@ -365,8 +356,7 @@
});
};
scanCodeInStorage = function (obj) {
var objIdNumber = obj.id.split("qrCodeImg")[1];
scanCode = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
@ -376,7 +366,6 @@
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$("#qrCode" + objIdNumber).val(result);
$.ajax({
url: "/material/qywxApplicationInScanQrCode",
type: "post",
@ -384,7 +373,56 @@
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
// 如果没有对应关系
layer.msg("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#mname").val("");
$("#code").val("");
$("#mid").val("");
$("#typeName").val("");
$("#version").val("");
$("#barCode").empty();
$("#unit").empty();
})
} else {
// 如果有对应关系
$("#mname").val(data.mname);
$("#mid").val(data.mid);
$("#code").val(data.code);
$("#version").val(data.version);
$("#typeName").val(data.typeName);
let barCode = $("#barCode");
barCode.empty();
var materialAndBarCodeList = data["materialAndBarCodeList"];
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$.each(materialAndBarCodeList, function (index, item) {
barCode.append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}
var shelfLife = data.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#producedDateItem").show();
$("#producedDate").attr("lay-verify", "required");
} else {
$("#producedDateItem").hide();
form.render();
}
var unit = $("#unit");
unit.empty();
unit.append(new Option(data.unit, "-1"));
var unitList = data["splitInfoList"];
for (let i = 0; i < unitList.length; i++) {
unit.append(new Option(unitList[i].newUnit, unitList[i].newUnit));
}
form.render();
}
}
})
@ -394,34 +432,70 @@
scanBarCode = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/material/qywxApplicationInScanBarCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
}
})
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
alert(res)
}
});
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
let barCode = $("#barCode");
barCode.empty();
barCode.append(new Option(result, result));
$.ajax({
url: "/material/qywxApplicationInScanBarCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
let material = d.data.material;
let unit = $("#unit");
if (material !== null) {
$("#mname").val(material.mname);
$("#code").val(material.mcode);
$("#mid").val(material.mid);
$("#typeName").val(material.tname);
$("#version").val(material.version);
unit.empty();
unit.append(new Option(material.unit, material.unit));
let splitInfoList = material.splitInfoList;
if (splitInfoList !== null && splitInfoList.length > 0) {
$.each(splitInfoList, function (index, item) {
unit.append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
}
form.render();
} else {
layer.msg("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#mname").val("");
$("#code").val("");
$("#mid").val("");
$("#typeName").val("");
$("#version").val("");
unit.empty();
$("#barCode").empty();
})
}
}
})
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
alert(res)
}
});
};
// 用于实现通过编码查询物料
@ -452,12 +526,12 @@
} else {
$("#mname").val(d.mname);
$("#mid").val( d.mid);
$("#mid").val(d.mid);
$("#version").val(d.version);
$("#unit").empty();
$('#unit').append(new Option(d.unit,d.unit));
$('#unit').append(new Option(d.unit, d.unit));
var splitInfoList = d["splitInfoList"];
$.each(splitInfoList,function (index,item) {
$.each(splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
@ -480,7 +554,7 @@
form.render();
} else {
let children = $("#barCode").parent().children();
if(children.length > 2){
if (children.length > 2) {
$("#barCode").empty();
$(children[1]).empty();
}

Loading…
Cancel
Save