Merge branch 'master' of http://nonxin.cn:8090/r/project/qxlw
| | |
| | | |
| | | PROJECT_BASE_MATERIAL_SAVE_FAIL("ææä¿¡æ¯ä¿å失败ï¼", ""), |
| | | PROJECT_BASE_MATERIAL_DELETE_FAIL("ææä¿¡æ¯å é¤å¤±è´¥ï¼", ""), |
| | | PROJECT_BASE_MATERIAL_OPERATE_FAIL("ææä¿¡æ¯æä½å¤±è´¥ï¼", ""), |
| | | PROJECT_BASE_MATERIAL_OPERATE_FAIL("ææä¿¡æ¯æä½å¤±è´¥ï¼", ModuleEnum.SYSTEM.getValue() + "002"), |
| | | PROJECT_BASE_MATERIAL_CODE_REPEAT("ææç¼ç 已被å
¶ä»ææä½¿ç¨ï¼", ModuleEnum.SYSTEM.getValue() + "003"), |
| | | |
| | | PROJECT_TYPE_SAVE_FAIL("项ç®ç±»åä¿å失败ï¼", ""), |
| | | PROJECT_TYPE_DELETE_FAIL("项ç®ç±»åå é¤å¤±è´¥ï¼", ""), |
| | |
| | | public static final String ITEMIZE_CODE="itemize_code"; |
| | | public static final String ITEMIZW_PARENT_CODE="itemize_parent_code"; |
| | | public static final String ITEMIZE_TYPE="itemize_type"; |
| | | public static final String MATERIAL_CODE="material_code"; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | /** |
| | | * ææä¿¡æ¯ |
| | | * @author 86151 |
| | | * å
嫿¥å£ï¼ææç±»åæ æ¥å£ãå表æ¥å£ãä¿åæ¥å£ |
| | | * ä¸å
嫿¥å£ï¼è¯¦æ
æ¥å£ãå 餿¥å£,éç¨éç¨æ¥å£ |
| | | * @author |
| | | * |
| | | */ |
| | | @RequestMapping("/api/material") |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·åææä¿¡æ¯ |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @RequestMapping(value="/get/{version}", method = RequestMethod.POST) |
| | | @ApiVersion(1) |
| | | public String getMaterialInfo(HttpServletRequest request, HttpServletResponse response) { |
| | | try { |
| | | //è·ååæ° |
| | | FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_PROJECT_BASE_MATERIAL);; |
| | | |
| | | //夿uuidæ¯å¦ä¸ºç©º |
| | | if (BaseUtil.strIsNull(fse.getUUID())) { |
| | | return error(BaseErrorCode.SYSTEM_FORM_COUNT.getValue(), BaseErrorCode.SYSTEM_FORM_COUNT.getValue()); |
| | | } |
| | | return OK_List(materialManagerService.getMaterialInfo(fse.getUUID())); |
| | | } catch (Exception e) { |
| | | return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ä¿åææä¿¡æ¯ |
| | |
| | | return OK(); |
| | | } |
| | | return error(BaseErrorCode.PROJECT_BASE_MATERIAL_SAVE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getText()); |
| | | } catch (Exception e) { |
| | | return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * å 餿æä¿¡æ¯ |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @RequestMapping(value="/delete/{version}",method = RequestMethod.POST) |
| | | @ApiVersion(1) |
| | | public String deleteWarehousrInfo(HttpServletRequest request, HttpServletResponse response) { |
| | | try { |
| | | //è·ååæ° |
| | | FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_PROJECT_BASE_MATERIAL);; |
| | | |
| | | //夿uuidæ¯å¦ä¸ºç©º |
| | | if (BaseUtil.strIsNull(fse.getUUID())) { |
| | | return error(BaseErrorCode.SYSTEM_FORM_COUNT.getValue(), BaseErrorCode.SYSTEM_FORM_COUNT.getValue()); |
| | | } |
| | | //å é¤ |
| | | boolean succ = materialManagerService.deleteMaterialInfo(fse.getUUID()); |
| | | if (succ) { |
| | | return OK(); |
| | | } |
| | | return error(BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_DELETE_FAIL.getText()); |
| | | } catch (Exception e) { |
| | | return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); |
| | | } |
| | |
| | | package com.product.base.service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import com.product.base.config.BaseErrorCode; |
| | | import com.product.base.config.CmnConst; |
| | | import com.product.core.dao.BaseDao; |
| | | import com.product.core.entity.DataTableEntity; |
| | | import com.product.core.entity.FieldSetEntity; |
| | | import com.product.core.exception.BaseException; |
| | | import com.product.core.service.support.AbstractBaseService; |
| | | import com.product.core.spring.context.SpringMVCContextHolder; |
| | | import com.product.module.sys.entity.SystemUser; |
| | |
| | | return dt; |
| | | } |
| | | |
| | | /** |
| | | * è·åææä¿¡æ¯ |
| | | * @param uuid |
| | | * @return |
| | | */ |
| | | public FieldSetEntity getMaterialInfo(String uuid) { |
| | | return baseDao.getFieldSet(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, uuid, false); |
| | | } |
| | | |
| | | /** |
| | | * ä¿åææä¿¡æ¯ |
| | |
| | | * @return |
| | | */ |
| | | public boolean saveMaterialInfo(FieldSetEntity fse) { |
| | | |
| | | //éªéæ¡ä»¶ |
| | | String filter = "material_code=?"; |
| | | List<String> param = new ArrayList<>(); |
| | | param.add(fse.getString(CmnConst.MATERIAL_CODE)); |
| | | |
| | | SystemUser sysUser = SpringMVCContextHolder.getCurrentUser(); |
| | | if (BaseUtil.strIsNull(fse.getUUID())) { |
| | | BaseUtil.createCreatorAndCreationTime(sysUser, fse); |
| | | }else { |
| | | filter += " AND uuid !=?"; |
| | | param.add(fse.getUUID()); |
| | | BaseUtil.updatedRegeneratorAndUpdateTime(sysUser, fse); |
| | | } |
| | | return baseDao.saveFieldSetEntity(fse); |
| | | FieldSetEntity fseExistMaterialCode = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, filter, param.toArray(), false); |
| | | if (fseExistMaterialCode!=null) { |
| | | throw new BaseException(BaseErrorCode.PROJECT_BASE_MATERIAL_CODE_REPEAT.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_CODE_REPEAT.getText()); |
| | | } |
| | | |
| | | /** |
| | | * å 餿æä¿¡æ¯ |
| | | * @param uuid |
| | | * @return |
| | | */ |
| | | public boolean deleteMaterialInfo(String uuid) { |
| | | Object [] uuids= uuid.split(","); |
| | | return baseDao.delete(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL, "uuid=?", uuids); |
| | | return baseDao.saveFieldSetEntity(fse); |
| | | } |
| | | } |
| | |
| | | |
| | | PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL("项ç®å项å é¤å¤±è´¥ï¼å·²ç»çæé¢ç®",""), |
| | | PROJECT_MAMAGERENT_ITEMIZE_GENERAL_ERROR("项ç®å项æä½é误ï¼",""), |
| | | PROJECT_BUDGET_IMPORT_FAIL("项ç®é¢ç®å¯¼å
¥å¤±è´¥",""), |
| | | ; |
| | | |
| | | private String text; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.product.project.management.service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.product.core.dao.BaseDao; |
| | | import com.product.core.entity.DataTableEntity; |
| | | import com.product.core.entity.FieldSetEntity; |
| | | import com.product.core.exception.BaseException; |
| | | import com.product.core.service.support.AbstractBaseService; |
| | | import com.product.project.management.config.Cmnconst; |
| | | import com.product.project.management.config.SystemCode; |
| | | import com.product.util.BaseUtil; |
| | | |
| | | @Service("projectBudget") |
| | | public class ProjectBudgetService extends AbstractBaseService{ |
| | | |
| | | @Autowired |
| | | BaseDao baseDao; |
| | | |
| | | /** |
| | | * 项ç®é¢ç®å¯¼å
¥ |
| | | * @param dtParseData è§£ææ°æ® |
| | | * @param headerDataList excelæ 颿°æ® |
| | | */ |
| | | public DataTableEntity importBudget(DataTableEntity dtParseData, List<List<String>> headerDataList) { |
| | | //夿æ¯å¦æè§£æEXCELæ°æ® |
| | | if (BaseUtil.dataTableIsEmpty(dtParseData)) { |
| | | return null; |
| | | } |
| | | //声æå¼å¸¸é |
| | | StringBuilder sbError = new StringBuilder(); |
| | | //éåexcelè½¬æ¢æ°æ® |
| | | for (int i = 0; i < dtParseData.getRows(); i++) { |
| | | FieldSetEntity fseParseData = dtParseData.getFieldSetEntity(i); |
| | | |
| | | //æ ¹æ®è§£ææ°æ®è·å项ç®åé¡¹ä¿¡æ¯ |
| | | List<Object> params = new ArrayList<>(); |
| | | String projectItem = autoCreateFilter(params, fseParseData); |
| | | |
| | | FieldSetEntity fseProjectItem = baseDao.getFieldSetEntityByFilter(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid IN (SELECT uuid FROM product_project_qxlw WHERE project_name=?) AND itemize_full_name=?", params.toArray(), false); |
| | | if(fseProjectItem==null) { |
| | | sbError.append(String.format("第 %s è¡é¡¹ç®å项 '%s' ä¸åå¨äºç³»ç»ä¸ã", fseParseData.getString("~row~"), projectItem)); |
| | | continue; |
| | | } |
| | | fseParseData.setValue("project_itemize_uuid", fseProjectItem.getUUID()); |
| | | } |
| | | if (!BaseUtil.strIsNull(sbError.toString())) { |
| | | throw new BaseException(SystemCode.PROJECT_BUDGET_IMPORT_FAIL.getValue(), sbError.toString()); |
| | | } |
| | | // baseDao.add(dtParseData); |
| | | return dtParseData; |
| | | } |
| | | |
| | | /** |
| | | * èªå¨çææ¥è¯¢é¡¹ç®å项filter |
| | | * @param params |
| | | * @param fseParseData |
| | | * @return |
| | | */ |
| | | public String autoCreateFilter(List<Object> params , FieldSetEntity fseParseData) { |
| | | StringBuilder projectItem = new StringBuilder(); |
| | | for (int i = 1; i < 7; i++) { |
| | | String fieldValue = fseParseData.getString("field"+i); |
| | | if(!BaseUtil.strIsNull(fieldValue)) { |
| | | if (i>2) { |
| | | projectItem.append("/"); |
| | | } |
| | | if(i==1) { |
| | | params.add(fieldValue); |
| | | }else{ |
| | | projectItem.append(fieldValue); |
| | | } |
| | | } |
| | | } |
| | | params.add(projectItem.toString()); |
| | | return projectItem.toString(); |
| | | } |
| | | } |
| | |
| | | //è·åæ°æ®åºåå§æ°æ® |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append("WITH outbound AS(") |
| | | .append(" SELECT A.project_uuid,A.project_itemize,C.material_type,B.material_code,SUM(B.outbound_weight)outbound_weight ") |
| | | .append(" SELECT A.project_uuid,D.itemize project_itemize,C.material_type,B.material_code,SUM(B.outbound_weight)outbound_weight ") |
| | | .append(" FROM product_project_outbound A ") |
| | | .append(" LEFT JOIN product_project_outbound_sub B ON A.uuid=B.outbound_uuid ") |
| | | .append(" LEFT JOIN product_project_base_material C ON B.material_uuid = C.uuid ") |
| | | .append(" WHERE project_uuid = ? ") |
| | | .append(" GROUP BY A.project_uuid,A.project_itemize,C.material_type,B.material_code ") |
| | | .append(" LEFT JOIN product_project_item D ON A.project_itemize = D.uuid ") |
| | | .append(" WHERE A.flow_flag=2 AND A.project_uuid = ? ") |
| | | .append(" GROUP BY A.project_uuid,D.itemize,C.material_type,B.material_code ") |
| | | .append(" ) ") |
| | | .append(" SELECT A.project_uuid,A.project_itemize,A.total_outbound_weight,B.material_type,B.material_code,B.outbound_weight ") |
| | | .append(" FROM ( ") |
| | |
| | | .append(" FROM outbound ") |
| | | .append(" GROUP BY project_uuid,project_itemize ") |
| | | .append(" )A ") |
| | | .append(" RIGHT JOIN outbound B ON A.project_uuid=B.project_uuid AND A.project_itemize=B.project_itemize "); |
| | | .append(" RIGHT JOIN outbound B ON A.project_uuid=B.project_uuid AND A.project_itemize=B.project_itemize ") |
| | | .append(" ORDER BY project_itemize,material_code"); |
| | | DataTableEntity dtItemizeInfo = baseDao.listTable(sb.toString(), new Object[]{project_uuid}); |
| | | if (!BaseUtil.dataTableIsEmpty(dtItemizeInfo)) { |
| | | |
| | |
| | | if (BaseUtil.strIsNull(materialTypes[materialType])) { |
| | | materialTypes[materialType] = materialCode; |
| | | } else { |
| | | if(materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)].indexOf(materialCode)<0) { |
| | | materialTypes[fseItemize.getInteger(Cmnconst.MATERIAL_TYPE)] += "," + materialCode; |
| | | } |
| | | } |
| | | |
| | | //æ¶éè¡è½¬åæ°æ® |
| | | String itemize = fseItemize.getString(Cmnconst.PROJECT_ITEMIZE); |
| | |
| | | <groupId>com.lx</groupId> |
| | | <artifactId>product-server-tool-table</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.lx</groupId> |
| | | <artifactId>product-server-announcement</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.lx</groupId> |